//Add product to cart public ActionResult AddToCart(string productId, string productName, string productPrice) { List <ProductModel> products = (List <ProductModel>)Session["Products"]; if (Session["Cart"] != null) { orderedItems = (List <OrderItem>)Session["Cart"]; } int id = int.Parse(productId); int price = int.Parse(productPrice); int NumInStock = 0; bool inCart = false; //Kolla om varan finns i lager foreach (ProductModel m in products) { if (m.Id == id) { //Kolla i produktlistan hur många som finns i lager, spara i variabel NumInStock = (m.NumberInStock > 0) ? m.NumberInStock : 0; break; } } //Kolla om en produkt med samma id redan finns i ordern foreach (OrderItem item in orderedItems) { if (item.Id == id) { inCart = true; //TEST if (NumInStock >= item.Numbers + 1) //Om antalet i lager är större än eller lika med det antal man har +1 { OrderItem.EditNumberOfItems(item, item.Numbers + 1); } Session["Cart"] = orderedItems; } //break; } if (!inCart) { if (NumInStock >= 1) //Om antalet i lager är större än eller lika med 1 { orderedItems.Add(new OrderItem(id, productName, price, 1)); } Session["Cart"] = orderedItems; } orderedItems = (List <OrderItem>)Session["Cart"]; //Lägg till logik för att räkna ut siffrorna object itTot = OrderItem.CalculateNumberOfItems(orderedItems); object prTot = OrderItem.CalculateTotal(orderedItems); if (itTot == null || prTot == null) { ViewBag.ItemsTotal = 0; ViewBag.PriceTotal = 0; } else { ViewBag.ItemsTotal = (int)itTot; ViewBag.PriceTotal = (int)prTot; } Session["InCart"] = itTot; return(View("../Product/Products", products)); }
public ActionResult Edit() { List <OrderItem> orderedItems = (List <OrderItem>)Session["Cart"]; List <ProductModel> products = (List <ProductModel>)Session["Products"]; string num = Request.Form["amount"]; string id = Request.Form["pId"]; int pId = int.Parse(id); int amount = int.Parse(num); int NumInStock = 0; //Kolla om varan finns i lager foreach (ProductModel m in products) { if (m.Id == pId) { //Kolla i produktlistan hur många som finns i lager, spara i variabel NumInStock = (m.NumberInStock > 0) ? m.NumberInStock : 0; break; } } //Ändra antal foreach (OrderItem item in orderedItems) { if (pId == item.Id) { if (NumInStock >= amount) { OrderItem.EditNumberOfItems(item, amount); break; } else { //Gör något för att visa att det inte gick } } } Session["Cart"] = orderedItems; //Logik för att räkna ut siffrorna object itTot = OrderItem.CalculateNumberOfItems(orderedItems); object prTot = OrderItem.CalculateTotal(orderedItems); if (itTot == null || prTot == null) { ViewBag.ItemsTotal = 0; ViewBag.PriceTotal = 0; } else { ViewBag.ItemsTotal = (int)itTot; ViewBag.PriceTotal = (int)prTot; } Session["InCart"] = itTot; return(View("ShoppingCart", orderedItems)); }