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 void Deve_Retornar_O_Resumo_Do_Pedido_Dado_Um_Pedido() { var pedido = Substitute.For <Pedidos>(); var adicionalPedido = Substitute.For <AdicionaisPedido>(); var adicionaisPedido = Substitute.For <List <AdicionaisPedido> >(); adicionaisPedido.Add(adicionalPedido); pedidoRepository.GetById(Arg.Any <int>()).Returns(pedido); adicionaisPedidoRepository.BuscarAdicionaisPorPedido(Arg.Any <int>()).Returns(adicionaisPedido); new ResumoPedidoBusiness(pedidoRepository, tamanhosPizzaRepository, saboresPizzaRepository, adicionaisPedidoRepository, adicionaisPizzaRepository, mapper).ExibirPedido(1); pedidoRepository.ReceivedWithAnyArgs(1).GetById(Arg.Any <int>()); tamanhosPizzaRepository.ReceivedWithAnyArgs(1).GetById(Arg.Any <int>()); saboresPizzaRepository.ReceivedWithAnyArgs(1).GetById(Arg.Any <int>()); adicionaisPedidoRepository.ReceivedWithAnyArgs(1).BuscarAdicionaisPorPedido(Arg.Any <int>()); adicionaisPizzaRepository.ReceivedWithAnyArgs(1).GetById(Arg.Any <int>()); mapper.ReceivedWithAnyArgs(1).Map <ResumoPedidoDto>(Arg.Any <Pedidos>()); }
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); }