Beispiel #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);
        }
Beispiel #2
0
        public void SetUp()
        {
            pedidoRepository           = Substitute.For <IPedidoRepository>();
            adicionaisPizzaRepository  = Substitute.For <IAdicionaisPizzaRepository>();
            tamanhosPizzaRepository    = Substitute.For <ITamanhosPizzaRepository>();
            saboresPizzaRepository     = Substitute.For <ISaboresPizzaRepository>();
            adicionaisPedidoRepository = Substitute.For <IAdicionaisPedidoRepository>();

            mapper = Substitute.For <IMapper>();
            personalizacaoPedidoDto = Substitute.For <PersonalizacaoPedidoDto>();
            personalizacaoPedidoDto.IdentificadorPedido = 1;
            personalizacaoPedidoDto.AdicionalPizza      = "extra bacon";

            pedido            = Substitute.For <Pedidos>();
            pedido.Id         = personalizacaoPedidoDto.IdentificadorPedido;
            pedido.Finalizado = false;

            adicionalPizza           = Substitute.For <AdicionaisPizza>();
            adicionalPizza.Id        = 1;
            adicionalPizza.Adicional = personalizacaoPedidoDto.AdicionalPizza;
            adicionalPizza.Valor     = 3;
            adicionalPizza.Tempo     = 0;
        }