static public BindedProductViewModel MapSingleBindedProduct(CProduct product) { var viewProduct = new BindedProductViewModel { UniqueID = product.UniqueID, Name = product.Name, Category = product.Category, Price = product.Price, Quantity = product.Quantity, }; return(viewProduct); }
public ActionResult AddToCart(string id, BindedProductViewModel bindedProduct) { try { if (!ModelState.IsValid) { ModelState.AddModelError("", "invalid input format"); return(View(bindedProduct)); } // handle concurrency CProduct foundProduct = _storeRepo.GetOneProduct(id); if (foundProduct == null) { ModelState.AddModelError("", "This product has just been deleted"); return(View(bindedProduct)); } CProduct cProduct = new CProduct(foundProduct.UniqueID, foundProduct.Name, foundProduct.Category, foundProduct.Price, bindedProduct.Quantity); // use tempdata to store products in a cart // do not know how to return a serialized string directly, use a local text file for now string path = "../../SimplyWriteData.json"; JsonFilePersist persist = new JsonFilePersist(path); string json = ""; if (TempData.ContainsKey("Cart")) { json = TempData.Peek("Cart").ToString(); } List <CProduct> products = persist.ReadProductsTempData(json); if (products == null) { products = new List <CProduct>(); } products.Add(cProduct); string cart = persist.WriteProductsTempData(products); TempData["Cart"] = cart; TempData.Keep("Cart"); // route parameter is an object return(RedirectToAction("Select", "Store", new StoreViewModel { Storeloc = TempData.Peek("storeLoc").ToString() })); } catch (Exception e) { _logger.LogError(e, "error while tring to add a product"); ModelState.AddModelError("", "failed to create a product"); return(View(bindedProduct)); } }
public ActionResult Edit(string id, BindedProductViewModel viewDP) { string path = "../../SimplyWriteData.json"; JsonFilePersist persist = new JsonFilePersist(path); List <CProduct> products = persist.ReadProductsTempData(TempData.Peek("Cart").ToString()); if (products == null) { return(RedirectToAction("CheckCart")); } foreach (var product in products) { if (product.UniqueID == id) { product.Quantity = viewDP.Quantity; break; } } string cart = persist.WriteProductsTempData(products); TempData["Cart"] = cart; TempData.Keep("Cart"); return(RedirectToAction("CheckCart")); }