using Kean.Domain.Identity.Commands; using Kean.Domain.Identity.Models; using Kean.Domain.Identity.Repositories; using System.Threading; using System.Threading.Tasks; namespace Kean.Domain.Identity.CommandHandlers { /// /// 断线命令处理程序 /// public sealed class DisconnectCommandHandler : CommandHandler { private readonly ISessionRepository _sessionRepository; // 会话仓库 /// /// 依赖注入 /// public DisconnectCommandHandler( ISessionRepository sessionRepository) { _sessionRepository = sessionRepository; } /// /// 处理程序 /// public override async Task Handle(DisconnectCommand command, CancellationToken cancellationToken) { if (command.ValidationResult.IsValid) { await _sessionRepository.UnregisterConnection(new Session(command.Token), command.Id); } } } }