Ejemplo n.º 1
0
        public Pedido AtualizarPedido(AtualizarPedidoRequisicao requisicao, int pedidoId)
        {
            ValidarParametrosAtualizarPedido(requisicao, pedidoId);

            var pedidoDetalhes   = new List <PedidoDetalhes>();
            var pedidoDetalhesId = 1;

            foreach (var livro in requisicao.LivrosId)
            {
                pedidoDetalhes.Add(new PedidoDetalhes()
                {
                    Id                = pedidoDetalhesId,
                    LivroId           = livro,
                    PedidoCabecalhoId = pedidoId
                });

                pedidoDetalhesId += 1;
            }

            return(new Pedido()
            {
                PedidoCabecalho = new PedidoCabecalho()
                {
                    Id = pedidoId,
                    StatusPedido = StatusPedido.Aberto,
                    UsuarioNome = requisicao.UsuarioNome
                },
                PedidoDetalhes = pedidoDetalhes
            });
        }
Ejemplo n.º 2
0
 public void ValidarParametrosAtualizarPedido(AtualizarPedidoRequisicao requisicao, int pedidoId)
 {
     if (pedidoId <= 0)
     {
         throw new BadRequestException(string.Format(Constantes.Erros.PARAMETRO_INVALIDO, nameof(pedidoId)));
     }
     if (requisicao.LivrosId == null || requisicao.LivrosId.Count() == 0 || requisicao.LivrosId.Any(l => l <= 0))
     {
         throw new BadRequestException(string.Format(Constantes.Erros.PARAMETRO_INVALIDO, nameof(requisicao.LivrosId)));
     }
     if (requisicao.StatusPedido <= 0)
     {
         throw new BadRequestException(string.Format(Constantes.Erros.PARAMETRO_INVALIDO, nameof(requisicao.StatusPedido)));
     }
 }
Ejemplo n.º 3
0
        public async Task <Pedido> PutPedido(int pedidoId, [FromBody] Usuario usuario)
        {
            Cartao cartao = new Cartao
            {
                Id               = 1,
                Bandeira         = "Visa",
                NomeProprietario = "José das Graças",
                MesExpiracao     = 8,
                AnoExpiracao     = 23,
                IdUsuario        = 1,
                CodigoSeguranca  = 145
            };

            Pagamento pagamento = new Pagamento
            {
                Id        = 1,
                Valor     = 500,
                Moeda     = "BRL",
                IdUsuario = 1,
                Cartao    = cartao
            };

            var respostaAutenticacao = await _clienteHttp.PostAsJsonAsync(_configuracao.GetSection("Microsservicos:Autenticacao").Value, usuario);

            var respostaAutenticacaoMensagem = await respostaAutenticacao.Content.ReadAsStringAsync();

            if (!respostaAutenticacao.IsSuccessStatusCode)
            {
                throw new Exception(respostaAutenticacaoMensagem);
            }

            var respostaPagamento = await _clienteHttp.PostAsJsonAsync(_configuracao.GetSection("Microsservicos:Pagamentos").Value, pagamento);

            var respostaPagamentoMensagem = await respostaPagamento.Content.ReadAsStringAsync();

            if (!respostaPagamento.IsSuccessStatusCode)
            {
                throw new Exception(respostaPagamentoMensagem);
            }

            var respostaAuditoria = await _clienteHttp.PostAsJsonAsync(_configuracao.GetSection("Microsservicos:Auditoria").Value, pagamento);

            var respostaAuditoriaMensagem = await respostaAuditoria.Content.ReadAsStringAsync();

            if (!respostaAuditoria.IsSuccessStatusCode)
            {
                throw new Exception(respostaAuditoriaMensagem);
            }

            AtualizarPedidoRequisicao requisicao = new AtualizarPedidoRequisicao
            {
                StatusPedido = StatusPedido.Realizado,
                UsuarioNome  = "José das Graças",
                LivrosId     = new List <int>
                {
                    1, 2, 3, 4, 5
                }
            };

            return(_pedidoNegocio.AtualizarPedido(requisicao, pedidoId));
        }
Ejemplo n.º 4
0
 public ActionResult <Pedido> Put([FromBody] AtualizarPedidoRequisicao requisicao, int pedidoId)
 {
     return(Ok(_pedidoNegocio.AtualizarPedido(requisicao, pedidoId)));
 }