public async Task <IActionResult> AdicionarItem(string Codigo)
        {
            var produto = await _produtoRepository.ObterPorCodigo(Codigo);

            if (produto == null)
            {
                return(NotFound());
            }

            var pedido = await ObterPedido();


            if (pedido.Itens == null)
            {
                var novoItemPedido = new ItemPedido(pedido, produto, 1);
                await _itemPedidoRepository.Adicionar(novoItemPedido);

                novoItemPedido.Produto = produto;
                pedido.Itens.Add(novoItemPedido);

                return(RedirectToAction(nameof(Index)));
            }

            var ItemNoCarrinho = pedido.Itens.Where(c => c.ProdutoId.Equals(produto.Id)).FirstOrDefault();


            if (ItemNoCarrinho != null)
            {
                ItemNoCarrinho.Quantidade++;
                await _itemPedidoRepository.Atualizar(ItemNoCarrinho);
            }

            else
            {
                var novoItemCarrinho = new ItemPedido(pedido, produto, 1);
                await _itemPedidoRepository.Adicionar(novoItemCarrinho);

                pedido.Itens.Add(novoItemCarrinho);
            }

            return(RedirectToAction(nameof(Index)));
        }
 public ActionResult Edit([Bind(Include = "Id,PedidoId,ProdutoId,ValorUnitario,Quantidade")] ItemPedidoSet itemPedidoSet)
 {
     if (ModelState.IsValid)
     {
         itemPedidoRepository.Atualizar(itemPedidoSet);
         return(RedirectToAction("Index"));
     }
     ViewBag.PedidoId  = new SelectList(pedidoRepository.ObterTodos(), "Id", "Id", itemPedidoSet.PedidoId);
     ViewBag.ProdutoId = new SelectList(produtoRepository.ObterTodos(), "Id", "Nome", itemPedidoSet.ProdutoId);
     return(View(itemPedidoSet));
 }
        public bool Atualizar(ItemPedido entity)
        {
            using (var scope = new TransactionScope())
            {
                var result = false;
                result = _repository.Atualizar(entity);

                if (!result)
                {
                    throw new Exception("Ocorreu um erro ao atualizar");
                }

                scope.Complete();
                return(result);
            }
        }