public async Task <IActionResult> Index() { //get cart items (from cookie) _cartService.LoadCart(); //get current products var cartItems = _cartService.GetAll(); var products = await _productRep.GetAll().Where(p => cartItems .Select(cp => cp.ProductId) .Contains(p.Id)).ToListAsync(); var vm = new CartIndexVm(); //fill VM with necessary product details, synchronizing cart item with product foreach (var cartItem in cartItems) { var product = products.FirstOrDefault(p => p.Id == cartItem.ProductId); if (product == null) { continue; } vm.Items.Add(new CartItemVm { ProductId = product.Id, Name = product.Name, Quantity = cartItem.Quantity, UnitPrice = product.Price }); } return(View(vm)); }
public IActionResult UpdateCart(CartIndexVm inputmdl) { _cartService.LoadCart(); foreach (var ciVm in inputmdl.Items) { _cartService.UpdateCartItem(ciVm.ProductId, ciVm.Quantity); } _cartService.SaveCart(); return(RedirectToAction("Index")); }