using AutoMapper; using Kean.Domain.Basic.Commands; using Kean.Domain.Basic.Events; using Kean.Domain.Basic.Models; using Kean.Domain.Basic.Repositories; using System.Threading; using System.Threading.Tasks; namespace Kean.Domain.Basic.CommandHandlers { /// /// 自动清除记录命令处理程序 /// public sealed class ClearRecordCommandHandler : CommandHandler { private readonly ICommandBus _commandBus; // 命令总线 private readonly IInterfaceRecordRepository _interfaceRecordRepository; /// /// 依赖注入 /// public ClearRecordCommandHandler( ICommandBus commandBus, IInterfaceRecordRepository interfaceRecordRepository) { _commandBus = commandBus; _interfaceRecordRepository = interfaceRecordRepository; } /// /// 处理程序 /// public override async Task Handle(ClearRecordCommand command, CancellationToken cancellationToken) { if (command.ValidationResult.IsValid) { await _interfaceRecordRepository.Clear(command.AddMonth); } else { await _commandBus.Notify(command.ValidationResult, cancellationToken: cancellationToken); } } } }