// GET: Produto/Details/5 public IActionResult Detalhes(int?id) { try { ViewData["Mensagem"] = TempData["Mensagem"]; List <ProdutoCarrinho> itensCarrinho = new List <ProdutoCarrinho>(); if (TempData["itensCarrinho"] != null) { itensCarrinho = JsonConvert.DeserializeObject <List <ProdutoCarrinho> >((string)TempData["itensCarrinho"]); if (itensCarrinho != null && itensCarrinho.Count > 0) { ViewData["itensCarrinho"] = itensCarrinho; ViewData["numeroItens"] = itensCarrinho.Count(); } else { ViewData["itensCarrinho"] = null; ViewData["numeroItens"] = 0; } } else { ViewData["itensCarrinho"] = null; ViewData["numeroItens"] = 0; } if (id == null) { return(NotFound()); } var produto = _produtoBll.BuscarProdutoId((int)id); if (produto == null) { return(NotFound()); } return(View(produto)); } catch (Exception ex) { TempData["Mensagem"] = "Erro: " + ex.Message; return(RedirectToAction("Index", "Home")); } }
public IActionResult BuscaProduto(int id) { try { var produto = JsonConvert.SerializeObject(_produtoBll.BuscarProdutoId(id)); if (produto != null && produto.Length > 0) { return(Ok(JsonConvert.SerializeObject(produto))); } else { return(Ok("Nenhum dado encontrado")); } } catch (Exception ex) { return(BadRequest("Erro: " + ex.Message)); } }
/// <summary> /// Adiciona item ao carrinho /// </summary> /// <param name="idProduto"></param> /// <returns></returns> public IActionResult AdicionarItem(int idProduto) { try { var produto = _produtoBll.BuscarProdutoId(idProduto); if (produto != null) { //Verifica se há estoque if (produto.QuantidadeDisponivel > 0) { ProdutoCarrinho dadosItem = new ProdutoCarrinho(); dadosItem.IdProduto = idProduto; dadosItem.Nome = produto.Nome; dadosItem.ValorUnitario = produto.Valor; List <ProdutoCarrinho> itensCarrinho = new List <ProdutoCarrinho>(); if (TempData["itensCarrinho"] != null) { itensCarrinho = JsonConvert.DeserializeObject <List <ProdutoCarrinho> >((string)TempData["itensCarrinho"]); if (itensCarrinho != null && itensCarrinho.Count > 0) { ViewData["itensCarrinho"] = itensCarrinho; ViewData["numeroItens"] = itensCarrinho.Count(); } else { ViewData["itensCarrinho"] = null; ViewData["numeroItens"] = 0; } } else { ViewData["itensCarrinho"] = null; ViewData["numeroItens"] = 0; } //Verifica se existem itens no carrinho if (itensCarrinho != null) { int numeroItens = (int)TempData["numeroItens"]; //Verificar se o item já está no carrinho var itemJaAdicionado = itensCarrinho.Find(c => c.IdProduto == idProduto); if (itemJaAdicionado == null) { dadosItem.QuantidadeProduto = 1; dadosItem.ValorTotal = dadosItem.ValorUnitario; itensCarrinho.Add(dadosItem); } else { itensCarrinho.Remove(itemJaAdicionado); itemJaAdicionado.QuantidadeProduto = itemJaAdicionado.QuantidadeProduto++; itemJaAdicionado.ValorTotal = itemJaAdicionado.ValorUnitario * itemJaAdicionado.QuantidadeProduto; itensCarrinho.Add(itemJaAdicionado); dadosItem.QuantidadeProduto = itemJaAdicionado.QuantidadeProduto; } produto.QuantidadeDisponivel = produto.QuantidadeDisponivel - dadosItem.QuantidadeProduto; _produtoBll.AtualizarProduto(produto); TempData["Mensagem"] = "Item adicionado com sucesso."; TempData["itensCarrinho"] = JsonConvert.SerializeObject(itensCarrinho); TempData["numeroItens"] = itensCarrinho.Count; return(RedirectToAction("Index", "Carrinho")); } else { itensCarrinho = new List <ProdutoCarrinho>(); dadosItem.QuantidadeProduto = 1; dadosItem.ValorTotal = dadosItem.ValorUnitario; itensCarrinho.Add(dadosItem); TempData["itensCarrinho"] = JsonConvert.SerializeObject(itensCarrinho); TempData["numeroItens"] = itensCarrinho.Count; return(RedirectToAction("Index", "Carrinho")); } } else { TempData["Mensagem"] = "Estoque do produto esgotado."; TempData["itensCarrinho"] = ViewData["itensCarrinho"]; TempData["numeroItens"] = ViewData["numeroItens"]; return(RedirectToAction("Index", "Home")); } } else { TempData["Mensagem"] = "Estoque do produto esgotado."; TempData["itensCarrinho"] = ViewData["itensCarrinho"]; TempData["numeroItens"] = ViewData["numeroItens"]; return(RedirectToAction("Index", "Home")); } } catch (Exception ex) { TempData["Mensagem"] = "Erro: " + ex.Message; return(RedirectToAction("Index", "Carrinho")); } }