Ejemplo n.º 1
0
        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);
            }
Ejemplo n.º 2
0
        /// <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;
        }