示例#1
0
        public IActionResult PutPedido(int id, Pedido pedido)
        {
            if (id != pedido.Id)
            {
                return(BadRequest());
            }

            try
            {
                _pedidoService.AtualizarPedido(pedido);
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PedidoExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#2
0
        public IActionResult Put([FromRoute] string codigoPedido, [FromBody] PedidoPutRequestResponse pedidoRequest)
        {
            pedidoRequest.Pedido = pedidoRequest.Pedido = codigoPedido;

            var pedidoCadastrado = _pedidoService.BuscarPedido(pedidoRequest.Pedido);

            if (pedidoCadastrado == null)
            {
                return(StatusCode(404, new ErroResponse(
                                      $"Pedido {pedidoRequest.Pedido} não encontrado")));
            }

            var pedido = _mapper.Map <Pedido>(pedidoRequest);

            _pedidoService.AtualizarPedido(pedido);

            return(StatusCode(200, pedidoRequest));
        }
示例#3
0
        public PedidoDTO PersonalizarPizza(SolicitacaoPersonalizacaoPedidoDTO personalizacao)
        {
            Pedido pedido = _pedidoService.ObterPedidoPorId(personalizacao.IdPedido);

            if (pedido == null)
            {
                throw new Exception("Pedido não encontrado.");
            }

            if (pedido.StatusPedido != StatusPedidoEnum.Pendente)
            {
                throw new Exception("Não é possível personalizar o pedido pois o mesmo não está em andamento.");
            }

            List <Personalizacoes> lista = new List <Personalizacoes>();

            foreach (var p in personalizacao.Personalizacoes)
            {
                lista.Add(_personalizacaoService.Find(p));
            }

            if (lista.Count(x => x.TipoPersonalizacaoEnum == TipoPersonalizacaoEnum.BordaRecheada) > 1)
            {
                throw new Exception("Não é possível inserir mais de uma boarda recheada.");
            }

            pedido.PersonalizacaoPedido = new List <PersonalizacaoPedido>();
            foreach (var p in lista)
            {
                pedido.PersonalizacaoPedido.Add(new PersonalizacaoPedido()
                {
                    IdPedido = pedido.Id, IdPersonalizacao = p.Id, Personalizacoes = p
                });
            }

            pedido = _pedidoService.CalcularPrecoPedido(pedido);
            pedido = _pedidoService.CalcularTempoDePreparoDoPedido(pedido);

            return(_pedidoService.AtualizarPedido(pedido).ConverterParaPedidoDTO());
        }
示例#4
0
 public IActionResult Put([FromBody] Pedido novoPedido)
 {
     return(Ok(_pedido.AtualizarPedido(novoPedido)));
 }