Ejemplo 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);
        }
Ejemplo n.º 2
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);
        }