public async Task <DictionaryValue> Handle(AddDictionaryValueCommand request, CancellationToken cancellationToken) { var dictionaryValueDomain = new Model.DictionaryValue(request.Name, request.DictionaryKey, request.IsActive, request.Code, request.Sequence); dictionaryValueDomain.Validate(); #region Persistence var dictionaryValue = dictionaryValueDomain.ToModel <Command.DictionaryValue>(_Mapper); await _DictionaryValueRepository.Add(dictionaryValue); await _UnitOfWork.Commit(); #endregion #region Bus var publishMessage = new Message(); publishMessage.MessageType = "AddDictionaryValue"; var response = dictionaryValueDomain.ToQueryModel <Query.DictionaryValue>(_Mapper); publishMessage.SetData(response); await _Bus.SendMessage(publishMessage); #endregion return(response); }
public async Task <AddDictionaryValuePayload> AddDictionaryValue( AddDictionaryValueInput input, [Service] IServiceProvider serviceProvider, CancellationToken cancellationToken) { var addDictionaryValueCommand = new AddDictionaryValueCommand() { Name = input.Name, DictionaryKey = input.DictionaryKey, IsActive = input.IsActive, Code = input.Code, Sequence = input.Sequence }; using (var scope = serviceProvider.CreateScope()) { var mediator = scope.ServiceProvider.GetRequiredService <IMediator>(); try { var response = await mediator.Send(addDictionaryValueCommand, cancellationToken); return(new AddDictionaryValuePayload(response)); } catch (ValidationException e) { var userErrors = new List <UserError>(); e.Message.Split(";").ForAll(item => { userErrors.Add(new UserError(item, item)); }); return(new AddDictionaryValuePayload(userErrors)); } } }