public ActionResult Create([Bind(Include = "KundID,Förnamn,Efternamn,Postadress,PostNr,Epost,TelefonNr,Ort")] Kund kund) { if (kund.error.Message == null) { kund.error.Message = ""; } if (!isOnlyLetters(kund.Förnamn) || !isOnlyLetters(kund.Efternamn)) { kund.error.Message = "Ditt namn och förnamn får endast innehålla bokstäver!"; return View(kund); } if (!IsValidEmail(kund.Epost)) { kund.error.Message = "Epost måste vara i korrekt format: [email protected]"; return View(kund); } var order = new Order(); TryUpdateModel(kund.error); try { var cart = ShoppingCart.GetCart(this.HttpContext); var items = cart.GetCartItems(); if (ModelState.IsValid) { foreach (var item in items) { var produkt = db.Artikel.Single( artikel => artikel.ArtikelID == item.ArtikelID); if (item.Count > produkt.Antal) { return View(kund); } } db.Kund.Add(kund); db.SaveChanges(); var searchTemp = from sc in db.Kund select sc; var kundTemp = searchTemp.Where(f => f.Förnamn.Equals(kund.Förnamn) && f.Efternamn.Equals(kund.Efternamn) && f.Postadress.Equals(kund.Postadress) && f.PostNr.Equals(kund.PostNr) && f.Epost.Equals(kund.Epost) && f.Ort.Equals(kund.Ort)); var kundanother = kundTemp.Single(); order.KundID = kundanother.KundID; db.Order.Add(order); db.SaveChanges(); cart.CreateOrder(order); ViewData["OrderID"] = order.OrderId; return RedirectToAction("ConfirmOrder", new { id = order.OrderId }); } } catch { return View(kund); } return View(kund); }
/// <summary> /// CreateOrder ansvarar för att skapa en order i databasen då kunden önskar /// att checka ut sin varukorg /// </summary> /// <param name="order">Tar in ett Order objekt som motsvarar kundens order</param> /// <returns>Returnverar en int som motsvarar kundens orderid</returns> public int CreateOrder(Order order) { ///Hämta alla items ur varukorgen var cartItems = GetCartItems(); /// För varje produkt som finns i varukorgen ska vi skapa en orderrad i datbasen foreach (var item in cartItems) { var orderrad = new Orderrad { ArtikelID = item.ArtikelID, OrderID = order.OrderId, Antal = item.Count }; db.Orderrad.Add(orderrad); } ///Spara ändringarna i databasen db.SaveChanges(); ///Anropa funktionen som ansvarar för att tömma varukorgen EmptyCart(); ///Returnera kundens order id för att informera kunden om detta return order.OrderId; }