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 DeleteUserSuccessEventHandler_Session : EventHandler
{
private readonly IUserRepository _userRepository; // 用户仓库
///
/// 依赖注入
///
public DeleteUserSuccessEventHandler_Session(
IUserRepository userRepository)
{
_userRepository = userRepository;
}
///
/// 处理程序
///
public override async Task Handle(DeleteUserSuccessEvent @event, CancellationToken cancellationToken)
{
foreach (var item in @event.Id)
{
await _userRepository.ClearSession(item);
}
}
}
}