using Kean.Domain.Identity.Enums; using Kean.Domain.Identity.Events; using Kean.Domain.Identity.Repositories; using Kean.Infrastructure.Utilities; using System.Threading; using System.Threading.Tasks; namespace Kean.Domain.Identity.EventHandlers { /// /// 终结成功时,处理安全策略 /// public sealed class FinalizeSuccessEventHandler_Security : EventHandler { private readonly ISecurityRepository _securityRepository; // 安全仓库 /// /// 依赖注入 /// public FinalizeSuccessEventHandler_Security( ISecurityRepository securityRepository) { _securityRepository = securityRepository; } /// /// 处理程序 /// public override async Task Handle(FinalizeSuccessEvent @event, CancellationToken cancellationToken) { foreach (var item in @event.Session) { await _securityRepository.WriteLog(nameof(SecurityLog.Offline), JsonHelper.Serialize(new { Session = item, Reason = nameof(OfflineReason.Restart) })); } } } }