public ShoppingCartViewModel AddToShoppingCart(HttpContext context, string productId, int quantity) { ShoppingCart cart; var id = productId; if (SessionExtensions.Get <ShoppingCart>(context.Session, "Cart") == null) { cart = new ShoppingCart { Id = Guid.NewGuid().ToString() }; SessionExtensions.Set(context.Session, "Cart", cart); } var shoppingCart = SessionExtensions.Get <ShoppingCart>(context.Session, "Cart"); ICollection <Product> products = shoppingCart.Products; var product = this.productRepository.All() .FirstOrDefault(p => p.Id.Equals(id)); product.Quantity = quantity; product.Unit -= quantity; this.productRepository.Update(product); this.productRepository.SaveChangesAsync(); products.Add(product); cart = new ShoppingCart { Id = shoppingCart.Id, Products = products }; SessionExtensions.Set(context.Session, "Cart", cart); var model = new ShoppingCartViewModel { Id = shoppingCart.Id, Products = products, }; return(model); }
public ShoppingCartViewModel GetShoppingCart(HttpContext context) { if (SessionExtensions.Get <ShoppingCart>(context.Session, "Cart") == null) { var cart = new ShoppingCart { Id = Guid.NewGuid().ToString(), Products = new List <Product>() }; SessionExtensions.Set(context.Session, "Cart", cart); } var shoppingCart = SessionExtensions.Get <ShoppingCart>(context.Session, "Cart");// == null var model = new ShoppingCartViewModel { Id = shoppingCart.Id, Products = shoppingCart.Products, }; return(model); }