using AutoMapper; using Kean.Domain.Stock.Commands; using Kean.Domain.Stock.Models; using Kean.Domain.Stock.Repositories; using Kean.Domain.Stock.SharedServices.Proxies; using Kean.Infrastructure.Configuration; using System.Linq; using System.Threading; using System.Threading.Tasks; namespace Kean.Domain.Stock.CommandHandlers { /// /// 记录命令处理程序 /// public sealed class RecordCommandHandler : CommandHandler { private readonly ICommandBus _commandBus; // 命令总线 private readonly IMapper _mapper; // 模型映射 private readonly IRecordRepository _recordRepository; /// /// 依赖注入 /// public RecordCommandHandler( ICommandBus commandBus, IMapper mapper, IRecordRepository recordRepository) { _commandBus = commandBus; _mapper = mapper; _recordRepository = recordRepository; } /// /// 处理程序 /// public override async Task Handle(RecordCommand command, CancellationToken cancellationToken) { var record = _mapper.Map(command); await _recordRepository.Append(record); } } }