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()); }
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)); }
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()); }
public IActionResult Put([FromBody] Pedido novoPedido) { return(Ok(_pedido.AtualizarPedido(novoPedido))); }