Пример #1
0
        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);
        }
Пример #2
0
        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));
                }
            }
        }