using Kean.Domain.Basic.Events;
using Kean.Domain.Basic.Repositories;
using System.Threading;
using System.Threading.Tasks;
namespace Kean.Domain.Basic.EventHandlers
{
///
/// 删除角色成功时,清理用户角色
///
public sealed class DeleteRoleSuccessEventHandler_User : EventHandler
{
private readonly IRoleRepository _roleRepository; // 角色仓库
///
/// 依赖注入
///
public DeleteRoleSuccessEventHandler_User(
IRoleRepository roleRepository)
{
_roleRepository = roleRepository;
}
///
/// 处理程序
///
public override async Task Handle(DeleteRoleSuccessEvent @event, CancellationToken cancellationToken)
{
foreach (var item in @event.Id)
{
await _roleRepository.ClearUserRole(item);
}
}
}
}