public static Carrinho FindShoppingCart() { List <Carrinho_produto> relProducts = new List <Carrinho_produto>(); string[] productsString; HttpCookie cookie = HttpContext.Current.Request.Cookies["shoppingCartMaisLife"]; if (cookie != null && cookie.Value != "") { productsString = cookie.Value.ToString().Split(new Char[] { ',' }); for (int i = 0; i <= productsString.Length - 1; i++) { string[] aux = productsString[i].Split(new Char[] { ':' }); int idProduct = Convert.ToInt16(aux[0]); int amount = Convert.ToInt16(aux[1]); Carrinho_produto relProduct = new Carrinho_produto(); Produto product = ConfigDB.Model.Produtos.Where(f => f.Id == idProduct).First(); relProduct.Produto1 = product; relProduct.Quantidade = amount; relProducts.Add(relProduct); } } Carrinho cart = new Carrinho() { Carrinho_produtos = relProducts, Status = "Ativo" }; return(cart); }
public ActionResult Carrinho(int id, int local) { // CHECAMOS DE FOI PASSADO ALGUM PRODUTO PARA A PÁGINA if (id > 0) { var product = ConfigDB.Model.Produtos.FirstOrDefault(f => f.Id == id); // CHECAMOS DE O PRODUTO PASSADO EXISTE if (product != null) { Usuario user = (Usuario)HttpContext.Session["user"]; // CHECAMOS DE HÁ ALGUM USUÁRIO LOGADO if (user != null) { Carrinho cart = user.Carrinhos.FirstOrDefault(f => f.Status == "Ativo"); // CHECAMOS SE HÁ ALGUM CARRINHO ATIVO if (cart == null) { cart = new Carrinho() { Usuario1 = user, Status = "Ativo" }; ConfigDB.Model.Add(cart); if (ConfigDB.Model.HasChanges) { ConfigDB.Model.SaveChanges(); } } Carrinho_produto rel = cart.checkProduct(product); // CHECAMOS SE O PRODUTO JÁ ESTÁ NO CARRINHO if (rel == null) { rel = new Carrinho_produto() { Produto1 = product, Carrinho1 = cart, Quantidade = 1 }; } else { rel.Quantidade++; } // SALVA/EDITA RELAÇÃO NO BANCO DE DADOS ConfigDB.Model.Add(rel); if (ConfigDB.Model.HasChanges) { ConfigDB.Model.SaveChanges(); } } else { Produto produto = new Produto() { Id = id }; Sessions.AddProductInShoppingCart(produto); } } } else { Usuario user = (Usuario)HttpContext.Session["user"]; // CHECAMOS DE HÁ ALGUM USUÁRIO LOGADO if (user != null) { Carrinho cart = user.Carrinhos.FirstOrDefault(f => f.Status == "Ativo"); if (cart == null) { cart = new Carrinho() { Usuario1 = user, Status = "Ativo" }; ConfigDB.Model.Add(cart); if (ConfigDB.Model.HasChanges) { ConfigDB.Model.SaveChanges(); } } } else { ViewBag.Cart = Sessions.FindShoppingCart(); } } if (local != 0) { ViewBag.Local = ConfigDB.Model.Bairros.FirstOrDefault(f => f.Id == local);; } ViewBag.Locals = ConfigDB.Model.Bairros.ToList(); Injections.LayoutInjection(this); return(View()); }