public void AddToCart(Product product) { // Get the matching cart and Product instances var cartItem = storeDB.Carts.SingleOrDefault(c => c.CartId == ShoppingCartId && c.ProductId == product.ProductId); if (cartItem == null) { // Create a new cart item if no cart item exists cartItem = new Cart { ProductId = product.ProductId, CartId = ShoppingCartId, Count = 1, DateCreated = DateTime.Now }; storeDB.Carts.Add(cartItem); } else { // If the item does exist in the cart, then add one to the quantity cartItem.Count++; } // Save changes storeDB.SaveChanges(); }
public ActionResult AddToCart(int productId) { var viewModel = (ProductOrderViewModel)Session["ProductOrderViewModel"]; if (viewModel == null) { viewModel = new ProductOrderViewModel { Product = db.Products.ToList<Product>(), Category = db.Categories.ToList<Category>() }; Session["ProductOrderViewModel"] = viewModel; } var newCart = new Cart(); bool exist = false; foreach (Cart cart in viewModel.CartItems) { if (cart.ProductId == productId) { cart.Count++; viewModel.CartTotal += cart.Product.Price; exist = true; } } if (!exist) { newCart.CartId = Guid.NewGuid().ToString(); newCart.Product = db.Products.FirstOrDefault(p => p.ProductId == productId); newCart.ProductId = productId; newCart.DateCreated = DateTime.UtcNow; newCart.Count = 1; viewModel.CartTotal += newCart.Product.Price; viewModel.CartItems.Add(newCart); } Session["ProductOrderViewModel"] = viewModel; return View("ShoppingCart",viewModel); }