コード例 #1
0
        public async Task <RegistrarNovaTaxaResponse> Handle(RegistrarNovaTaxaCommand request, CancellationToken cancellationToken)
        {
            var response = (RegistrarNovaTaxaResponse)request.Response;

            RegistrarNovaTaxaCommandValidator.ValidarCommand(request, response);
            if (response.IsFailure)
            {
                return(response);
            }

            var valorTaxaCobranca = ValorTaxaCobranca.Create(request.ValorTaxa);

            if (valorTaxaCobranca.IsFailure)
            {
                response.AddError(Errors.General.InvalidCommandArguments()
                                  .AddErroDetail(Errors.General.InvalidArgument("ValorTaxaInvalido", string.Join("|", valorTaxaCobranca.Messages))));
                return(response);
            }

            ObterTipoSegmentoPorId(request, response);
            if (response.IsFailure)
            {
                return(response);
            }

            await VerficarSegmentoJaRegistrado(request, response);

            if (response.IsFailure)
            {
                return(response);
            }

            TaxaCobranca = new TaxaCobranca(Guid.NewGuid().ToString(), valorTaxaCobranca.Value, TipoSegmento);

            await Registrar(request, response);

            if (response.IsFailure)
            {
                return(response);
            }

            await Mediator.DispatchDomainEvents(TaxaCobranca);

            response.SetPayLoad(TaxaCobranca.ConverterEntidadeParaResponse());

            return(response);
        }
コード例 #2
0
        public static void ValidarCommand(RegistrarNovaTaxaCommand request, RegistrarNovaTaxaResponse response)
        {
            var validator = new RegistrarNovaTaxaCommandValidator();

            var resultadoValidacao = validator.Validate(request);

            if (!resultadoValidacao.IsValid)
            {
                var invalidCommandArguments = Errors.General.InvalidCommandArguments();

                foreach (var erro in resultadoValidacao.Errors)
                {
                    invalidCommandArguments.AddErroDetail(Errors.General.InvalidArgument(erro.ErrorCode, erro.ErrorMessage));
                }

                response.AddError(invalidCommandArguments);
            }
        }