private Pedido MapearPedido(IAtualizarPedidoInput input) { return(new Pedido { NumeroPedido = input.NumeroPedido, ClienteId = input.ClienteId, DataPedido = input.DataPedido, ItensPedido = input.ItensPedido.Select(f => new ProdutoPedido(f)).ToList() }); }
private async Task ValidarInput(IAtualizarPedidoInput input, CancellationToken cancellationToken) { var validacao = await validador.ValidateAsync(input, cancellationToken); if (!validacao.IsValid) { throw new ArgumentException( JsonConvert.SerializeObject( validacao.Errors.Select(f => f.ErrorMessage))); } }
public async Task Executar(IAtualizarPedidoInput input, CancellationToken cancellationToken = default) { await ValidarInput(input, cancellationToken); var pedido = MapearPedido(input); pedido.ValorFrete = await ObterValorFrete(input.ClienteId, cancellationToken) ?? 0; await this.AtualizarValorTotalItensPedido(pedido.ItensPedido, cancellationToken); await this.clienteServico.AtualizarPedido(pedido, cancellationToken); }