예제 #1
0
        public IActionResult Carrinho(string codigo)
        {
            /*
             * O código abaixo, faz com que o pedido seja criado duas vezes
             *
             * var pedidoId - GetPedidoId();
             * var pedido = dbSet.Where(p=> p.Id == pedidoId)
             *                              .SingleOrDefault();
             *
             * if(pedido == null)
             * {
             *  pedido = new Pedido();
             *  dbSet.Add(pedido);
             *  contexto.SaveChanges();
             * }
             */

            //verificar se o pedido, foi ou não, preenchido
            if (!string.IsNullOrEmpty(codigo))
            {
                //add o item no repositório de pedidos
                pedidoRepository.AddItem(codigo);
            }

            //criando um novo pedido
            Pedido pedido = pedidoRepository.GetPedido();

            return(View(pedido.Itens));
        }
예제 #2
0
        public Pedido AdicionarItemPedido(string codigo)
        {
            var    idPedido = _sessionService.GetPedidoId();
            Pedido pedido   = null;

            if (idPedido != null)
            {
                pedido = _pedidoRepository.GetPedido((int)idPedido);
            }

            if (pedido == null)
            {
                pedido = new Pedido();
                _pedidoRepository.Save(pedido);
                _sessionService.SetPedidoId(pedido.Id);
            }

            if (!string.IsNullOrEmpty(codigo))
            {
                _pedidoRepository.AddItem(codigo, pedido.Id);
                pedido = _pedidoRepository.GetPedido(pedido.Id);
            }

            return(pedido);
        }
예제 #3
0
        public IActionResult Carrinho(int produtoId)
        {
            pedidoRepository.AddItem(produtoId);
            var items = pedidoRepository.GetItems();

            return(View(items));
        }
 public IActionResult Carrinho(string codigo)
 {
     if (!string.IsNullOrEmpty(codigo))
     {
         pedidoRepository.AddItem(codigo);
     }
     return(View(pedidoRepository.GetPedido().Itens));
 }
        public IActionResult Carrinho(string codigo)
        {
            if (!string.IsNullOrEmpty(codigo))
            {
                pedidoRepository.AddItem(codigo);
            }

            return(ViewComCarrinho(pedidoRepository.GetCarrinhoViewModel()));
        }
        public IActionResult Carrinho(string codigo)
        {
            if (!string.IsNullOrEmpty(codigo))
            {
                _pedidoRepository.AddItem(codigo);
            }
            var pedido = _pedidoRepository.GetPedido().Itens;

            return(View(new CarrinhoViewModel(pedido)));
        }
예제 #7
0
        public async Task <IActionResult> Carrinho(string codigo)
        {
            if (!string.IsNullOrEmpty(codigo))
            {
                await pedidoRepository.AddItem(codigo);
            }
            await pedidoRepository.UpdatePrecosVenda();

            return(View(new CarrinhoViewModel(await pedidoRepository.GetPedido())));
        }
        public IActionResult Carrinho(int produtoId)
        {
            if (produtoId > 0)
            {
                pedidoRepository.AddItem(produtoId);
            }
            CarrinhoViewModel viewModel = GetCarrinhoViewModel();

            return(View(viewModel));
        }
예제 #9
0
        public IActionResult Carrinho(string codigo)
        {
            if (!string.IsNullOrWhiteSpace(codigo))
            {
                pedidoRepository.AddItem(codigo);
            }

            Pedido pedido = pedidoRepository.GetPedido();

            return(View(pedido.Itens));
        }
예제 #10
0
        public IActionResult ShoppingCart(string codigo)
        {
            if (!string.IsNullOrEmpty(codigo))
            {
                PedidoRepository.AddItem(codigo);
            }

            Pedido pedido = PedidoRepository.GetPedido();

            return(View(pedido.Itens));
        }
예제 #11
0
        public IActionResult Carrinho(string codigo)
        {
            if (!string.IsNullOrEmpty(codigo))
            {
                pedidoRepository.AddItem(codigo);
            }
            IList <ItemPedido> itens             = pedidoRepository.GetPedido().Itens;
            CarrinhoViewModel  carrinhoViewModel = new CarrinhoViewModel(itens);

            return(base.View(carrinhoViewModel));
        }
        public IActionResult Carrinho(string codigo)
        {
            if (!string.IsNullOrEmpty(codigo))
            {
                pedidoRepository.AddItem(codigo);
            }
            Pedido pedido    = pedidoRepository.GetPedido();
            var    viewModel = new CarrinhoViewModel(pedido.Itens);

            return(View(viewModel));
        }
예제 #13
0
        public IActionResult Carrinho(string codigo)
        {
            if (!string.IsNullOrEmpty(codigo))
            {
                // Se o código for preenchido vamos adicioanr um item ao nosso pedido
                _pedidoRepository.AddItem(codigo);
            }

            Pedido p = _pedidoRepository.GetPedido();

            return(View(p.Itens));
        }
예제 #14
0
        public IActionResult Carrinho(string codigo)
        {
            if (!string.IsNullOrEmpty(codigo))
            {
                _pedidoRepository.AddItem(codigo);
            }

            var items        = _pedidoRepository.GetPedido().Itens;
            var carrinhoView = new CarrinhoViewModel(items);

            return(View(carrinhoView));
        }
예제 #15
0
        public IActionResult Carrinho(string codigo)
        {
            if (!String.IsNullOrEmpty(codigo))
            {
                pedidoRepository.AddItem(codigo);
            }

            var Itens = pedidoRepository.GetPedido().Itens;

            var carrinhoViewModel = new CarrinhoViewModel(Itens);

            return(View(carrinhoViewModel));
        }
예제 #16
0
        public async Task <IActionResult> Carrinho(string codigo)
        {
            if (!string.IsNullOrEmpty(codigo))
            {
                await pedidoRepository.AddItem(codigo);
            }

            Pedido taskPedido = await pedidoRepository.GetPedido();

            List <ItemPedido> itens             = taskPedido.Itens;
            CarrinhoViewModel carrinhoViewModel = new CarrinhoViewModel(itens);

            return(base.View(carrinhoViewModel));
        }
예제 #17
0
        public async Task <IActionResult> Carrinho(string codigo)
        {
            if (!string.IsNullOrEmpty(codigo)) //verifica se o codigo foi preenchido ou não
            {
                await pedidoRepository.AddItem(codigo);
            }

            Pedido pedido = await pedidoRepository.GetPedido(); //metodo para receber o pedido da sessão atual

            List <ItemPedido> itens             = pedido.Itens;
            CarrinhoViewModel carrinhoViewModel = new CarrinhoViewModel(itens);

            return(base.View(carrinhoViewModel));  // passando (retornando) para a view a solicitação de itens feita no repositorio
        }
예제 #18
0
        public IActionResult Carrinho(string codigo)
        {
            if (!string.IsNullOrEmpty(codigo))
            {
                pedidoRepository.AddItem(codigo);
            }

            Pedido pedido = pedidoRepository.GetPedido();
            //Passado a lista de objetos para a view de carrinho
            List <ItemPedido> itens             = pedido.Itens;
            CarrinhoViewModel carrinhoViewModel = new CarrinhoViewModel(itens);

            return(base.View(carrinhoViewModel));
        }
        public async Task <IActionResult> GetCarrinho(int pedidoId, string codigo)
        {
            Pedido pedido = await pedidoRepository.GetPedido(pedidoId);

            if (string.IsNullOrWhiteSpace(codigo))
            {
                return(BadRequest($"Código inválido: {codigo}"));
            }

            if (pedido == null)
            {
                return(NotFound($"Pedido não encontrado com id: {pedidoId}"));
            }

            await pedidoRepository.AddItem(pedido.Id, codigo);

            pedido = await pedidoRepository.GetPedido(pedido.Id);

            return(Ok(new CarrinhoViewModel(pedido.Id, pedido.Itens)));
        }
예제 #20
0
        public async Task <bool> Handle(AdicionarItemPedidoCommand message, CancellationToken cancellationToken)
        {
            if (!ValidateCommand(message))
            {
                return(false);
            }

            var pedido = await _pedidoRepository.GetPedidoRascunhoByClienteId(message.ClienteId);

            var pedidoItem = new PedidoItem(message.ProdutoId, message.Nome, message.Quantidade, message.ValorUnitario);

            if (pedido == null)
            {
                pedido = Pedido.PedidoFactory.NewPedidoRascunho(message.ClienteId);
                pedido.AddItem(pedidoItem);

                _pedidoRepository.Add(pedido);
                pedido.AddEvent(new PedidoRascunhoIniciadoEvent(message.ClienteId, message.ProdutoId));
            }
            else
            {
                var pedidoItemExistente = pedido.PedidoItemExistente(pedidoItem);
                pedido.AddItem(pedidoItem);

                if (pedidoItemExistente)
                {
                    _pedidoRepository.UpdateItem(pedido.PedidoItems.FirstOrDefault(p => p.ProdutoId == pedidoItem.ProdutoId));
                }
                else
                {
                    _pedidoRepository.AddItem(pedidoItem);
                }

                pedido.AddEvent(new PedidoAtualizadoEvent(pedido.ClienteId, pedido.Id, pedido.ValorTotal));
            }

            pedido.AddEvent(new PedidoItemAdicionadoEvent(pedido.ClienteId, pedido.Id, message.ProdutoId, message.Nome, message.ValorUnitario, message.Quantidade));
            return(await _pedidoRepository.UnitOfWork.Commit());
        }