// Check if item exists in cart private bool CartItemExists(ProductDetail product, WinkelwagenItem item) { if (item.product.Find(p => p.product.ProductId == product.product.ProductId) != null) return true; else return false; }
// Add an item to the cart of the user public ActionResult AddToCart(int id) { if (Request.Cookies[CartKey] == null) { // Create cookie HttpCookie myCookie = new HttpCookie(CartKey); myCookie.Expires = DateTime.Now.AddDays(31d); Response.Cookies.Add(myCookie); } // Check if Cookie value exists // else continue if(Response.Cookies[CartKey].Value == null) { WinkelwagenItem wItem = new WinkelwagenItem(); wItem.product = new List<ProductDetail>(); wItem.hoeveelheid = new List<int>(); Response.Cookies[CartKey].Value = JsonConvert.SerializeObject(wItem); } // Attach id to model by retrieving data from DB ProductDetail product = productDBController.GetProductAndDetail(id); // TODO: Check if Cookie value is WinkelwagenItem class // Check if item exists, if so, increment quantity. // else add item and quantity WinkelwagenItem item = JsonConvert.DeserializeObject<WinkelwagenItem>(Request.Cookies[CartKey].Value); if(CartItemExists(product, item)) { // Get index value int index = item.product.FindIndex(p => p.product.ProductId == product.product.ProductId); // Can use method immediatly, instead of assigning variable item.hoeveelheid[index] += 1; // Modify response Response.Cookies[CartKey].Value = JsonConvert.SerializeObject(item); } else { // Add Product item.product.Add(product); item.hoeveelheid.Add(1); // Modify Response Response.Cookies[CartKey].Value = JsonConvert.SerializeObject(item); } return RedirectToAction("Winkelwagen", "Winkelwagen"); }
public bool InsertBestelling(WinkelwagenItem item, string datum, int gebruikerId, int adresId, string bestelKeuze, int aanbiedingId) { MySqlTransaction trans = null; try { conn.Open(); trans = conn.BeginTransaction(); // Insert BestelBase & Retrieve last inserted Id int bestellingId = InsertBestelBase(datum, bestelKeuze, gebruikerId, adresId); // Doorloop alle winkelwagen items for (int i = 0; i < item.product.Count; i++) InsertBestelRegel(item.product[i].detailId, datum, item.hoeveelheid[i],bestellingId, aanbiedingId); trans.Commit(); } catch (Exception e) { Console.WriteLine("Exceptie in Insert Bestelling en BestellingRegel, Transactie mislukt"); trans.Rollback(); return false; } return true; }
private bool bestellingAfronden(WinkelwagenItem winkelwagenItemModel, string bestelKeuze, int adres) { // Retrieve User Data KlantBase klant = klantDBController.GetKlantInformatie(User.Identity.Name); int adresId = klantDBController.GetAdresId(klant.Id); if (adresId == 0) RedirectToAction("Winkelwagen", "Winkelwagen"); // Temp Data over Adres niet ingevult int aanbiedingId = 0; // TODO: Get aanbieding // Gold member = 10% korting if (klantDBController.CheckGebruikerGoldMember(klant.Id)) { for(int i = 0; i < winkelwagenItemModel.product.Count; i++) { // 10% korting winkelwagenItemModel.product[i].verkoopprijs = winkelwagenItemModel.product[i].verkoopprijs * 0.9; } } // Insert Bestelling if(bestellingDBController.InsertBestelling(winkelwagenItemModel, DateTime.Today.ToString("yyyy/M/%d"), klant.Id, adres, bestelKeuze, aanbiedingId)) { // Succesful Insert if (Request.Cookies[CartKey] != null) { // Empty Winkelwagen Response.Cookies[CartKey].Expires = DateTime.Now.AddDays(-1); } RedirectToAction("Profiel", "Account"); // Temp data meegeven } else { // Unsuccesful Insert RedirectToAction("Winkelwagen", "Winkelwagen"); // Temp Data meegeven } return true; }