// GET: /Diary/DecrementProduct public ActionResult DecrementProduct(int productId) { // Init Diary List <DiaryVM> diary = Session["diary"] as List <DiaryVM>; using (Db db = new Db()) { // Get model from list DiaryVM model = diary.FirstOrDefault(x => x.ProductId == productId); // Decrement qty if (model.Quantity > 1) { model.Quantity--; } else { model.Quantity = 0; diary.Remove(model); } // Store needed data var result = new { qty = model.Quantity, Calorie = model.Calorie }; // Return json return(Json(result, JsonRequestBehavior.AllowGet)); } }
public ActionResult AddToDiaryPartial(int id) { // Init diaryVM list List <DiaryVM> diary = Session["diary"] as List <DiaryVM> ?? new List <DiaryVM>(); // Init DiaryVM DiaryVM model = new DiaryVM(); using (Db db = new Db()) { // Get the product ProductDTO product = db.Products.Find(id); // Check if the product is already in Diary var productInDiary = diary.FirstOrDefault(x => x.ProductId == id); // If not, add new if (productInDiary == null) { diary.Add(new DiaryVM() { ProductId = product.Id, ProductName = product.Name, Quantity = 1, Calorie = product.Calorie, Image = product.ImageName }); } else { // If it is, increment productInDiary.Quantity++; } } // Get total qty and Calorie and add to model int qty = 0; int calorie = 0; foreach (var item in diary) { qty += item.Quantity; calorie += item.Quantity * item.Calorie; } model.Quantity = qty; model.Calorie = calorie; // Save Diary back to session Session["diary"] = diary; // Return partial view with model return(PartialView(model)); }
// GET: /Diary/RemoveProduct public void RemoveProduct(int productId) { // Init Diary list List <DiaryVM> diary = Session["diary"] as List <DiaryVM>; using (Db db = new Db()) { // Get model from list DiaryVM model = diary.FirstOrDefault(x => x.ProductId == productId); // Remove model from list diary.Remove(model); } }
// GET: /Diary/IncrementProduct public JsonResult IncrementProduct(int productId) { // Init Diary list List <DiaryVM> diary = Session["diary"] as List <DiaryVM>; using (Db db = new Db()) { // Get DiaryVM from list DiaryVM model = diary.FirstOrDefault(x => x.ProductId == productId); // Increment qty model.Quantity++; // Store needed data var result = new { qty = model.Quantity, calorie = model.Calorie }; // Return json with data return(Json(result, JsonRequestBehavior.AllowGet)); } }
public ActionResult DiaryPartial() { // Init DiaryVM DiaryVM model = new DiaryVM(); // Init quantity int qty = 0; // Init Calorie int calorie = 0; // Check for diary session if (Session["diary"] != null) { // Get total qty and Calorie var list = (List <DiaryVM>)Session["diary"]; foreach (var item in list) { qty += item.Quantity; calorie += item.Quantity * item.Calorie; } model.Quantity = qty; model.Calorie = calorie; } else { // Or set qty and Calorie to 0 model.Quantity = 0; model.Calorie = 0; } // Return partial view with model return(PartialView(model)); }