Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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>());
        }
Esempio n. 3
0
        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);
        }