public ResumoPedidoDto PersonalizarPedido(PersonalizacaoPedidoDto personalizacaoPedido) { var identificadorPedido = personalizacaoPedido.IdentificadorPedido; var pedido = _pedidoRepository.GetById(identificadorPedido); if (pedido == null) { throw new Exception($"O pedido {identificadorPedido} não existe!"); } if (pedido.Finalizado.GetValueOrDefault(true)) { throw new Exception($"O pedido já esta finalizado não é possível adicionar incrementos!"); } var adicionalPizza = personalizacaoPedido.AdicionalPizza; var personalizacaoPizza = _adicionaisPizzaRepository.GetAll() .FirstOrDefault(x => x.Adicional.ToUpper() == adicionalPizza.ToUpper()); if (personalizacaoPizza == null) { throw new Exception($"A personalização {adicionalPizza} informada não esta cadastrada!"); } if (_adicionaisPedidoRepository.ExisteAdicionalCadastroNoPedido(identificadorPedido, personalizacaoPizza.Id)) { throw new Exception($"A personalização {adicionalPizza} informada já esta cadastrada no pedido!"); } pedido.Total += personalizacaoPizza.Valor ?? 0; pedido.Tempo += personalizacaoPizza.Tempo ?? 0; pedido.TamanhosPizza = _tamanhosPizzaRepository.GetById(pedido.TamanhosPizzaId); pedido.SaboresPizza = _saboresPizzaRepository.GetById(pedido.SaboresPizzaId); pedido.AdicionaisPedido = _adicionaisPedidoRepository.BuscarAdicionaisPorPedido(identificadorPedido); pedido.AdicionaisPedido.Add(new AdicionaisPedido { AdicionaisPizza = personalizacaoPizza, Pedidos = pedido }); _pedidoRepository.Update(pedido); var resumoPedido = _mapper.Map <ResumoPedidoDto>(pedido); return(resumoPedido); }
public ResumoPedidoDto ExibirPedido(int identificadorPedido) { var pedido = _pedidoRepository.GetById(identificadorPedido); if (pedido == null) { throw new Exception($"O pedido {identificadorPedido} não existe!"); } pedido.TamanhosPizza = _tamanhosPizzaRepository.GetById(pedido.TamanhosPizzaId); pedido.SaboresPizza = _saboresPizzaRepository.GetById(pedido.SaboresPizzaId); pedido.AdicionaisPedido = _adicionaisPedidoRepository.BuscarAdicionaisPorPedido(identificadorPedido); foreach (var adicional in pedido.AdicionaisPedido) { adicional.AdicionaisPizza = _adicionaisPizzaRepository.GetById(adicional.AdicionaisPizzaId); } var resumoPedido = _mapper.Map <ResumoPedidoDto>(pedido); return(resumoPedido); }