コード例 #1
0
        public ActionResult ResetPassword(ResetPasswordModel model)
        {
            var message = "";

            if (ModelState.IsValid)
            {
                using (DatabaseEntities1 dc = new DatabaseEntities1())
                {
                    var user = dc.Users.Where(a => a.ResetPasswordCode == model.ResetCode).FirstOrDefault();
                    if (user != null)
                    {
                        user.Password          = Crypto.Hash(model.NewPassword);
                        user.ResetPasswordCode = "";
                        dc.Configuration.ValidateOnSaveEnabled = false;
                        dc.SaveChanges();
                        message = "Your password has been successfully updated";
                    }
                }
            }
            else
            {
                message = "Something invalid";
            }
            ViewBag.Message = message;
            return(View(model));
        }
コード例 #2
0
ファイル: Program2Controller.cs プロジェクト: 99002597/Csharp
        public ViewResult Display()
        {
            var context = new DatabaseEntities1();
            var model   = context.Employee.ToList();

            return(View(model));
        }
コード例 #3
0
        public ActionResult ForgotPassword(string Email)
        {
            //verify Email
            //GEnerate Reser Password link
            //Send Email
            string message = "";
            bool   status  = false;

            using (DatabaseEntities1 dc = new DatabaseEntities1())
            {
                var account = dc.Users.Where(a => a.Email == Email).FirstOrDefault();
                if (account != null)
                {
                    //Send reset password email
                    string resetCode = Guid.NewGuid().ToString();
                    SendVerificationLinkEmail(account.Email, resetCode, "ResetPassword");
                    account.ResetPasswordCode = resetCode;
                    //

                    //this code wil prevent the website from having issues with password do not match
                    dc.Configuration.ValidateOnSaveEnabled = false;
                    dc.SaveChanges();
                    message = "A link to reset your password has been sent to your Email.";
                }
                else
                {
                    message = "Account not found";
                }
            }
            ViewBag.Message = message;
            return(View());
        }
コード例 #4
0
        public ActionResult Save(Korisnikk kor)
        {
            bool status = false;

            if (ModelState.IsValid)
            {
                using (DatabaseEntities1 dq = new DatabaseEntities1())
                {
                    if (kor.Korisnik_Id > 0)
                    {
                        var varr = dq.Korisnikks.Where(a => a.Korisnik_Id == kor.Korisnik_Id).FirstOrDefault();
                        if (varr != null)
                        {
                            varr.FirstName       = kor.FirstName;
                            varr.LastName        = kor.LastName;
                            varr.AdressName      = kor.AdressName;
                            varr.E_mail          = kor.E_mail;
                            varr.Tel_broj        = kor.Tel_broj;
                            varr.Vrsta_tel_broja = kor.Vrsta_tel_broja;
                        }
                    }
                    else
                    {
                        dq.Korisnikks.Add(kor);
                    }
                    dq.SaveChanges();
                    status = true;
                }
            }
            return(new JsonResult {
                Data = new { status = status }
            });
        }
コード例 #5
0
        public ActionResult MonthSales(string month1, string month2, string year)
        {
            var db = new DatabaseEntities1();

            int Sales1 = 0;
            int Sales2 = 0;

            int[] Sales = new int[6];
            foreach (Order order in db.Orders)
            {
                if (month1 == "" || month2 == "")
                {
                    Sales1 = 10;
                    Sales2 = 10;
                }
                if (month1 == order.OrderDate.Month.ToString(format: "D2") && year == order.OrderDate.Year.ToString(format: "d4"))
                {
                    Sales1   = Sales1 + order.Payment.Amount;
                    Sales[0] = Sales1;
                    Sales[2] = order.OrderDate.Month;
                    Sales[3] = order.OrderDate.Year;
                }
                if (month2 == order.OrderDate.Month.ToString(format:"D2") && year == order.OrderDate.Year.ToString(format: "d4"))
                {
                    Sales2   = Sales2 + order.Payment.Amount;
                    Sales[1] = Sales2;
                    Sales[4] = order.OrderDate.Month;
                    Sales[5] = order.OrderDate.Year;
                }
            }
            ViewBag.data = Sales;
            return(View());
        }
コード例 #6
0
        public ActionResult Confirmationdetails(int orderNumber)
        {
            Dictionary <Book, int> BookQuantity = new Dictionary <Book, int>();
            Tuple <Order, OrderDetail, Payment> info;

            using (var db = new DatabaseEntities1())
            {
                Order       orderObj       = db.Orders.Where(x => x.Order_Number == orderNumber).FirstOrDefault();
                OrderDetail orderDetailObj = db.OrderDetails.Where(x => x.Order_Number == orderNumber).FirstOrDefault();
                Payment     paymentObj     = db.Payments.Where(x => x.Order_Number == orderNumber).FirstOrDefault();



                // GET PRODUCTS
                string[] products = orderDetailObj.Products.Split('|');

                foreach (var item in products)
                {
                    string[] books    = item.Split('-');
                    double   isbn     = Convert.ToDouble(books[0]);
                    Book     book     = db.Books.Where(x => x.ISBN == isbn).FirstOrDefault();
                    int      quantity = Convert.ToInt32(books[1]);
                    BookQuantity.Add(book, quantity);
                }

                info = new Tuple <Order, OrderDetail, Payment>(orderObj, orderDetailObj, paymentObj);

                Session["Checkout"] = BookQuantity;
            }
            return(View(info));
        }
コード例 #7
0
 public ActionResult Users(int id = 0)
 {
     using (DatabaseEntities1 dbModel = new DatabaseEntities1())
     {
         return(View(dbModel.Users.ToList()));
     }
 }
コード例 #8
0
        public ActionResult UserOrderSta()
        {
            var db = new DatabaseEntities1();

            int[] Users       = new int[2];
            int   unregisterd = 0;
            int   registerd   = 0;

            foreach (Order order in db.Orders)
            {
                if (order.User_id == null)
                {
                    unregisterd = unregisterd + order.Payment.Amount;
                    Users[0]    = unregisterd;
                }

                if (order.User_id != 0)
                {
                    registerd = registerd + order.Payment.Amount;
                    Users[1]  = registerd;
                }
            }
            ViewBag.data = Users;
            return(View());
        }
コード例 #9
0
ファイル: Program2Controller.cs プロジェクト: 99002597/Csharp
        public ActionResult AddEmployee(Employee emp)
        {
            var context = new DatabaseEntities1();

            context.Employee.Add(emp);
            context.SaveChanges();
            return(RedirectToAction("Display"));
        }
コード例 #10
0
ファイル: Program2Controller.cs プロジェクト: 99002597/Csharp
        public ActionResult Find(string id)
        {
            int EmpId   = int.Parse(id);
            var context = new DatabaseEntities1();
            var model   = context.Employee.FirstOrDefault((e) => e.EmpId == EmpId);

            return(View(model));
        }
コード例 #11
0
 public bool IsEmailExist(string email)
 {
     using (DatabaseEntities1 dc = new DatabaseEntities1())
     {
         var v = dc.Users.Where(a => a.Email == email).FirstOrDefault();
         return(v != null);
     }
 }
コード例 #12
0
    protected void Login1_LoggedIn(object sender, EventArgs e)
    {
        DatabaseEntities1 Db = new DatabaseEntities1();
        var name             = Login1.UserName;
        var user             = (from u in Db.User where u.Username == name select u).FirstOrDefault();

        Session["id_user"] = user.IdUser;
    }
コード例 #13
0
 public ActionResult Save(int id)
 {
     using (DatabaseEntities1 dq = new DatabaseEntities1())
     {
         var var1 = dq.Korisnikks.Where(a => a.Korisnik_Id == id).FirstOrDefault();
         return(View(var1));
     }
 }
コード例 #14
0
 public ActionResult GetContact()
 {
     using (DatabaseEntities1 db = new DatabaseEntities1())
     {
         var korisnici = db.Korisnikks.OrderBy(a => a.FirstName).ToList();
         return(Json(new { data = korisnici }, JsonRequestBehavior.AllowGet));
     }
 }
コード例 #15
0
        public void ShoppingCart(string isbn)
        {
            if (Session["User_id"] != null)
            {
                var    list    = db.Carts.Select(s => s);
                double isbnD   = Convert.ToDouble(isbn);
                int    User_id = Convert.ToInt32(Session["User_id"]);

                bool has = list.Any(cus => cus.ISBN == isbnD && cus.User_id == User_id);

                if (has)
                {
                    using (DatabaseEntities1 db = new DatabaseEntities1())
                    {
                        db.Carts.Remove(db.Carts.Single(cus => cus.ISBN == isbnD && cus.User_id == User_id));
                        db.SaveChanges();
                    }
                }
                else
                {
                    using (DatabaseEntities1 db = new DatabaseEntities1())
                    {
                        var cart = new Cart()
                        {
                            User_id = User_id, ISBN = Convert.ToDouble(isbn), Quantity = 1
                        };
                        db.Carts.Add(cart);
                        db.SaveChanges();
                    }
                }
            }
            else
            {
                // UNREGISTERED USER
                if (Session["shoppingCart"] == null || Session["shoppingCart"] == "")
                {
                    Session["shoppingCart"] = isbn.ToString();
                }
                else
                {
                    List <string> isbns = Session["shoppingCart"].ToString().Split(',').ToList();
                    //Check of die al in je cart zit.
                    //Deletes product from cart
                    if (isbns.Contains(isbn))
                    {
                        isbns.RemoveAll(s => isbn == s);
                        var newcart = String.Join(",", isbns);
                        Session["shoppingCart"] = newcart;
                    }
                    else
                    {
                        Session["shoppingCart"] = Session["shoppingCart"] + "," + isbn.ToString();
                    }
                }
            }
        }
コード例 #16
0
ファイル: Program2Controller.cs プロジェクト: 99002597/Csharp
        public ActionResult DeleteEmployee(string id)
        {
            int EmpId   = int.Parse(id);
            var context = new DatabaseEntities1();
            var model   = context.Employee.FirstOrDefault((e) => e.EmpId == EmpId);

            context.Employee.Remove(model);
            context.SaveChanges();
            return(RedirectToAction("Display"));
        }
コード例 #17
0
        public ActionResult Confirmation(int orderNumber)
        {
            Dictionary <Book, int> BookQuantity = new Dictionary <Book, int>();
            Tuple <Order, OrderDetail, Payment> info;

            using (var db = new DatabaseEntities1())
            {
                Order       orderObj       = db.Orders.Where(x => x.Order_Number == orderNumber).FirstOrDefault();
                OrderDetail orderDetailObj = db.OrderDetails.Where(x => x.Order_Number == orderNumber).FirstOrDefault();
                Payment     paymentObj     = db.Payments.Where(x => x.Order_Number == orderNumber).FirstOrDefault();
                int         currentuser_id = Convert.ToInt32(Session["User_id"]);
                User        currentuser    = db.Users.Where(x => x.User_id == currentuser_id).FirstOrDefault();

                if (Session["User_id"] != null)
                {
                    string Email = Convert.ToString(currentuser.Email);
                    SendConEmail(Email, orderNumber);
                }
                else
                {
                    string Email = Convert.ToString(orderDetailObj.Email);
                    SendConEmail(Email, orderNumber);
                }
                // GET PRODUCTS
                string[] products = orderDetailObj.Products.Split('|');

                foreach (var item in products)
                {
                    string[] books    = item.Split('-');
                    double   isbn     = Convert.ToDouble(books[0]);
                    Book     book     = db.Books.Where(x => x.ISBN == isbn).FirstOrDefault();
                    int      quantity = Convert.ToInt32(books[1]);
                    BookQuantity.Add(book, quantity);
                }

                info = new Tuple <Order, OrderDetail, Payment>(orderObj, orderDetailObj, paymentObj);

                Session["Checkout"] = BookQuantity;

                // CLEAR CARTS
                if (Session["User_id"] != null)
                {
                    int User_id = Convert.ToInt32(Session["User_id"]);
                    db.Carts.RemoveRange(db.Carts.Where(x => x.User_id == User_id));
                    db.SaveChanges();
                }
                else
                {
                    Session["ShoppingCart"] = null;
                }
            }


            return(View(info));
        }
コード例 #18
0
ファイル: Program2Controller.cs プロジェクト: 99002597/Csharp
        public ActionResult Find(Employee emp)
        {
            var context = new DatabaseEntities1();
            var model   = context.Employee.FirstOrDefault((e) => e.EmpId == emp.EmpId);

            model.EmpName    = emp.EmpName;
            model.EmpAddress = emp.EmpAddress;
            model.EmpSalary  = emp.EmpSalary;
            context.SaveChanges();
            return(RedirectToAction("Display"));
        }
コード例 #19
0
 public ActionResult Delete(int id)
 {
     using (DatabaseEntities1 db = new DatabaseEntities1())
     {
         var va = db.Korisnikks.Where(a => a.Korisnik_Id == id).FirstOrDefault();
         if (va != null)
         {
             return(View(va));
         }
         else
         {
             return(HttpNotFound());
         }
     }
 }
コード例 #20
0
ファイル: DbAccess.cs プロジェクト: JoostZ/weather-logger
        public DbAccess()
        {
            Context = new DatabaseEntities1();
            Count = Context.WeatherSnapshots.Count();
            if (Count == 0)
            {
                FirstDate = DateTime.Now;
                LastDate = DateTime.Now;
            }
            else
            {

                FirstDate = Context.WeatherSnapshots.Min(tr => tr.Timestamp);
                LastDate = Context.WeatherSnapshots.Max(tr => tr.Timestamp);
            }
        }
コード例 #21
0
 public ActionResult AddOrEdit(User userModel)
 {
     using (DatabaseEntities1 dbModel = new DatabaseEntities1())
     {
         if (dbModel.Users.Any(x => x.UserName == userModel.UserName))
         {
             ViewBag.DuplicateMessage = "Username already exist.";
             return(View("AddOrEdit", userModel));
         }
         dbModel.Users.Add(userModel);
         dbModel.SaveChanges();
     }
     ModelState.Clear();
     ViewBag.SuccessMessage = "Registration Successful.";
     return(View("AddOrEdit", new User()));
 }
コード例 #22
0
        public ActionResult DeleteKorisnik(int id)
        {
            bool status = false;

            using (DatabaseEntities1 db = new DatabaseEntities1())
            {
                var v = db.Korisnikks.Where(a => a.Korisnik_Id == id).FirstOrDefault();
                if (v != null)
                {
                    db.Korisnikks.Remove(v);
                    db.SaveChanges();
                    status = true;
                }
            }
            return(new JsonResult {
                Data = new { status = status }
            });
        }
コード例 #23
0
        public ActionResult Authorize(User userModel)
        {
            using (DatabaseEntities1 db = new DatabaseEntities1())
            {
                var userPassword = Crypto.Hash(userModel.Password);
                var userData     = db.Users.Where(x => x.Email == userModel.Email &&
                                                  x.Password == userPassword).FirstOrDefault();
                if (userData == null)
                {
                    userModel.LoginErrorMessage = "Wrong Email or Password";
                    return(View("Index", userModel));
                }
                else if (userData.IsEmailVerified == false)
                {
                    userModel.LoginErrorMessage = "Your email must be verified before you can log in. A new verification link has been sent to your email ";
                    SendVerificationLinkEmail(userData.Email, userData.ActivationCode.ToString());
                    return(View("Index", userModel));
                }
                else
                {
                    //SUCCESFULLY LOGIN
                    Session["User_id"] = userData.User_id;
                    Session["Name"]    = userData.Name;

                    var cart = (Dictionary <Book, int>)Session["Cart"];

                    db.Carts.RemoveRange(db.Carts.Where(x => x.User_id == userData.User_id));
                    db.SaveChanges();
                    foreach (KeyValuePair <Book, int> kv in cart)
                    {
                        var cartObj = new Cart()
                        {
                            User_id = userData.User_id, ISBN = kv.Key.ISBN, Quantity = kv.Value
                        };
                        db.Carts.Add(cartObj);
                        db.SaveChanges();
                    }
                    return(RedirectToAction("Address", "Checkout"));
                }
            }
        }
コード例 #24
0
        public ActionResult Authorize(User userModel)
        {
            using (DatabaseEntities1 db = new DatabaseEntities1())
            {
                var userPassword = Crypto.Hash(userModel.Password);
                var userData     = db.Users.Where(x => x.Email == userModel.Email &&
                                                  x.Password == userPassword).FirstOrDefault();
                var Data = db.Users.Where(x => x.Email == userModel.Email &&
                                          x.Password == userPassword).FirstOrDefault();

                if (userData == null)
                {
                    userModel.LoginErrorMessage = "Wrong Email or Password";
                    return(View("Index", userModel));
                }
                else if (Data.IsEmailVerified == false)
                {
                    userModel.LoginErrorMessage = "Your email must be verified before you can log in. A new verification link has been sent to your email ";
                    SendVerificationLinkEmail(userData.Email, userData.ActivationCode.ToString());
                    return(View("Index", userModel));
                }
                else
                {
                    if (userData.Type)
                    {
                        Session["Admin"] = true;
                    }
                    else
                    {
                        Session["Admin"] = false;
                    }

                    Session["User_id"] = userData.User_id;
                    Session["Name"]    = userData.Name;

                    return(RedirectToAction("Index", "Home"));
                }
            }
        }
コード例 #25
0
 public ActionResult ResetPassword(string id)
 {
     //Verify the reset password link
     //Find account associated with this link
     //redirect to reset password page
     using (DatabaseEntities1 dc = new DatabaseEntities1())
     {
         var user = dc.Users.Where(a => a.ResetPasswordCode == id).FirstOrDefault();
         if (user != null)
         {
             ResetPasswordModel model = new ResetPasswordModel
             {
                 ResetCode = id
             };
             return(View(model));
         }
         else
         {
             return(HttpNotFound());
         }
     }
 }
コード例 #26
0
        public void FavoriteList(string isbn)
        {
            if (Session["User_id"] == null)
            {
                TempData["favo"] = "<script>alert('You need to login first.');</script>";
            }
            else
            {
                var    list    = db.Favorites.Select(s => s);
                double isbnD   = Convert.ToDouble(isbn);
                int    User_id = Convert.ToInt32(Session["User_id"]);

                bool has = list.Any(cus => cus.ISBN == isbnD && cus.User_id == User_id);
                //CHECKEN OF ISBN AL IN FAVORIETEN ZIT VAN DE GEBRUIKER.
                if (has)
                {
                    using (DatabaseEntities1 db = new DatabaseEntities1())
                    {
                        db.Favorites.Remove(db.Favorites.Single(cus => cus.ISBN == isbnD && cus.User_id == User_id));
                        db.SaveChanges();
                    }
                }
                else
                {
                    // ISBN TOEVOEGEN AAN FAVORIETEN

                    using (DatabaseEntities1 db = new DatabaseEntities1())
                    {
                        var favo = new Favorite()
                        {
                            User_id = User_id, ISBN = Convert.ToDouble(isbn)
                        };
                        db.Favorites.Add(favo);
                        db.SaveChanges();
                    }
                }
            }
        }
コード例 #27
0
        public ActionResult VerifyAccount(string id)
        {
            bool status = false;

            using (DatabaseEntities1 dc = new DatabaseEntities1())
            {
                dc.Configuration.ValidateOnSaveEnabled = false; //This line will avoid any problems by confirm password
                                                                //does not match issue in the save changes section
                var v = dc.Users.Where(a => a.ActivationCode == new Guid(id)).FirstOrDefault();
                if (v != null)
                {
                    v.IsEmailVerified = true;
                    dc.SaveChanges();
                    status = true;
                }
                else
                {
                    ViewBag.Message = "Invaild Request";
                }
            }
            ViewBag.Status = status;
            return(View());
        }
コード例 #28
0
        public ActionResult Authorize(User user)
        {
            using (DatabaseEntities1 dbModel = new DatabaseEntities1())
            {
                var UserDetails = dbModel.Users.Where(x => x.UserName == user.UserName && x.Password == user.Password).FirstOrDefault();
                if (UserDetails == null)
                {
                    user.LoginErrorMessege = "Wrong username or password";
                    return(View("Login", user));
                }

                else if (UserDetails.UserName == "Admin" && UserDetails.Password == "Admin")
                {
                    return(RedirectToAction("Admin", "Admin"));
                }

                else
                {
                    Session["UserId"]   = UserDetails.Id;
                    Session["UserName"] = UserDetails.UserName;
                    return(RedirectToAction("Index", "Home"));
                }
            }
        }
コード例 #29
0
        //CHECKOUT AS GUEST

        public ActionResult Address(string Name, string Surname, string Email, string PhoneNumber, string Street,
                                    int?HouseNumber, string City, string ZipCode, string Country, string Save)
        {
            Dictionary <User, Address> userInfo = new Dictionary <User, Address>();


            if (Name == "" || Surname == "" || Email == "" || PhoneNumber == "" || Street == "" ||
                HouseNumber == null || City == "" || ZipCode == "" || Country == "")
            {
                ViewBag.Message = "Please fill in everything.";
                return(View());
            }
            else
            {
                if (Session["User_id"] != null)
                {
                    int User_id = Convert.ToInt32(Session["User_id"]);

                    userInfo.Add(new User {
                        Name = Name, Surname = Surname, Email = Email, Phone_number = PhoneNumber
                    },
                                 new Address
                    {
                        Street_name  = Street,
                        House_number = Convert.ToInt32(HouseNumber),
                        Zip_code     = ZipCode,
                        Country      = Country,
                        User_id      = User_id
                    });

                    Session["UserInfo"] = userInfo;

                    if (Save == "Save")
                    {
                        using (var db = new DatabaseEntities1())
                        {
                            var has = db.Addresses.Where(x => x.User_id == User_id).SingleOrDefault();
                            if (has != null)
                            {
                                db.Addresses.Remove(db.Addresses.Where(x => x.User_id == User_id).SingleOrDefault());
                            }


                            db.Addresses.Add(new Address
                            {
                                Street_name  = Street,
                                City         = City,
                                House_number = Convert.ToInt32(HouseNumber),
                                Zip_code     = ZipCode,
                                Country      = Country,
                                User_id      = User_id
                            });
                            db.SaveChanges();
                        }
                    }

                    return(RedirectToAction("Review"));
                }
                else
                {
                    userInfo.Add(new User {
                        Name = Name, Surname = Surname, Email = Email, Phone_number = PhoneNumber
                    },
                                 new Address
                    {
                        Street_name  = Street,
                        House_number = Convert.ToInt32(HouseNumber),
                        Zip_code     = ZipCode,
                        Country      = Country
                    });

                    Session["UserInfo"] = userInfo;

                    return(RedirectToAction("Review"));
                }
            }
        }
コード例 #30
0
        public ActionResult Payment(bool?payment)
        {
            if (payment != null)
            {
                if ((bool)payment)
                {
                    string products = "";
                    Dictionary <User, Address> userInfo = (Dictionary <User, Address>)Session["UserInfo"];

                    int Ordernumber = new Random().Next(1000000, int.MaxValue);


                    using (var db = new DatabaseEntities1())
                    {
                        //Check if ordernumber already exists.
                        while (db.Orders.Where(x => x.Order_Number == Ordernumber).FirstOrDefault() != null)
                        {
                            Ordernumber = new Random().Next(1000000, int.MaxValue);
                        }
                        // CREATE ORDER IN DATABASE
                        Order orderObj = new Order();

                        if (Session["User_id"] != null)
                        {
                            //CREATER ORDER OBJECT
                            orderObj = new Order()
                            {
                                Order_status = "Pending",
                                OrderDate    = DateTime.Now,
                                User_id      = Convert.ToInt32(Session["User_id"]),
                                Order_Number = Ordernumber
                            };
                            //ADD ORDER TO DATABASE
                            db.Orders.Add(orderObj);
                            db.SaveChanges();

                            //READ ALL PRODUCTS AND QUANITIES TO STRING
                            Dictionary <Book, int> bookDict = new Dictionary <Book, int>();
                            var User_id = Convert.ToInt32(Session["User_id"]);


                            var a = db.Carts.Where(x => x.User_id == User_id).ToList();
                            foreach (var item in a)
                            {
                                Book bookObj = db.Books.Where(x => x.ISBN == item.ISBN).FirstOrDefault();
                                bookDict.Add(bookObj, item.Quantity);
                                //Changes the stock of the book in the database.
                                bookObj.Stock = bookObj.Stock - item.Quantity;
                                db.SaveChanges();
                            }

                            int maxCount = bookDict.Count;
                            int counter  = 0;
                            foreach (KeyValuePair <Book, int> kv in bookDict)
                            {
                                counter += 1;
                                if (counter == maxCount)
                                {
                                    products += kv.Key.ISBN.ToString() + "-" + kv.Value;
                                }
                                else
                                {
                                    products += kv.Key.ISBN.ToString() + "-" + kv.Value + "|";
                                }
                            }

                            //ADD ORDERDETAILS TO DB
                            foreach (KeyValuePair <User, Address> kv2 in userInfo)
                            {
                                OrderDetail orderDetailObj = new OrderDetail()
                                {
                                    OrderDate    = DateTime.Now,
                                    Products     = products,
                                    Name         = kv2.Key.Name,
                                    Surname      = kv2.Key.Surname,
                                    Email        = kv2.Key.Email,
                                    Phone_Number = kv2.Key.Phone_number,
                                    Street_Name  = kv2.Value.Street_name,
                                    House_number = kv2.Value.House_number,
                                    Zip_code     = kv2.Value.Zip_code,
                                    Country      = kv2.Value.Country,
                                    Order_Number = Ordernumber
                                };
                                //CREATE PAYMENT OBJ AND ADD IT TO PAYMENT TABLE
                                Payment PaymentObj = new Payment
                                {
                                    Payment_date = DateTime.Now,
                                    Amount       = Convert.ToInt32(Session["TotalPrice"]),
                                    Order_Number = Ordernumber
                                };

                                db.OrderDetails.Add(orderDetailObj);
                                db.Payments.Add(PaymentObj);
                                db.SaveChanges();
                            }
                            //ADD ORDERDETAIL ID & PAMYENT ID TO ORDER
                            var orderDetailObj2 = db.OrderDetails.Where(x => x.Order_Number == Ordernumber).FirstOrDefault();
                            var paymentObj2     = db.Payments.Where(x => x.Order_Number == Ordernumber).FirstOrDefault();

                            var orderObj2 = db.Orders.Where(x => x.Order_Number == Ordernumber).FirstOrDefault();
                            orderObj2.OrderDetails_id = orderDetailObj2.OrderDetails_Id;
                            orderObj2.Payment_id      = paymentObj2.Payment_id;



                            db.SaveChanges();


                            return(RedirectToAction("Confirmation", new { orderNumber = Ordernumber }));
                        }
                        else
                        {
                            // CREATE ORDER OBJECT
                            orderObj = new Order()
                            {
                                Order_status = "Pending",
                                OrderDate    = DateTime.Now,
                                Order_Number = Ordernumber
                            };
                            //ADD ORDER TO DATABASE
                            db.Orders.Add(orderObj);
                            db.SaveChanges();

                            //READ ALL PRODUCTS AND QUANITIES TO STRING
                            Dictionary <Book, int> cartQuantity = (Dictionary <Book, int>)Session["Cart"];
                            int maxCount = cartQuantity.Count;
                            int counter  = 0;
                            foreach (KeyValuePair <Book, int> kv in cartQuantity)
                            {
                                counter += 1;
                                if (counter == maxCount)
                                {
                                    products += kv.Key.ISBN.ToString() + "-" + kv.Value;
                                }
                                else
                                {
                                    products += kv.Key.ISBN.ToString() + "-" + kv.Value + "|";
                                }
                            }

                            //Change Stock for the Books in the Shopping Cart (Stock = Stock - Quantity that's been ordered)
                            var cart = (Dictionary <Book, int>)Session["Cart"];
                            foreach (var item in cart)
                            {
                                Book Bookobj = db.Books.Where(x => x.ISBN == item.Key.ISBN).FirstOrDefault();
                                Bookobj.Stock = Bookobj.Stock - item.Value;
                                db.SaveChanges();
                            }

                            // ADD ORDERDETAILS TO DB
                            foreach (KeyValuePair <User, Address> kv2 in userInfo)
                            {
                                //CREATE ORDERDETAIL OBJ AND ADD IT TO ORDERDETAIL TABLE
                                OrderDetail orderDetailObj = new OrderDetail()
                                {
                                    OrderDate    = DateTime.Now,
                                    Products     = products,
                                    Name         = kv2.Key.Name,
                                    Surname      = kv2.Key.Surname,
                                    Email        = kv2.Key.Email,
                                    Phone_Number = kv2.Key.Phone_number,
                                    Street_Name  = kv2.Value.Street_name,
                                    House_number = kv2.Value.House_number,
                                    Zip_code     = kv2.Value.Zip_code,
                                    Country      = kv2.Value.Country,
                                    Order_Number = Ordernumber
                                };

                                //CREATE PAYMENT OBJ AND ADD IT TO PAYMENT TABLE
                                Payment PaymentObj = new Payment
                                {
                                    Payment_date = DateTime.Now,
                                    Amount       = Convert.ToInt32(Session["TotalPrice"]),
                                    Order_Number = Ordernumber
                                };

                                db.OrderDetails.Add(orderDetailObj);
                                db.Payments.Add(PaymentObj);
                                db.SaveChanges();
                            }

                            //ADD ORDERDETAIL ID TO ORDER
                            var orderDetailObj2 = db.OrderDetails.Where(x => x.Order_Number == Ordernumber).FirstOrDefault();
                            var paymentObj2     = db.Payments.Where(x => x.Order_Number == Ordernumber).FirstOrDefault();

                            var orderObj2 = db.Orders.Where(x => x.Order_Number == Ordernumber).FirstOrDefault();
                            orderObj2.OrderDetails_id = orderDetailObj2.OrderDetails_Id;
                            orderObj2.Payment_id      = paymentObj2.Payment_id;
                            db.SaveChanges();


                            return(RedirectToAction("Confirmation", new { orderNumber = Ordernumber }));
                        }
                    }
                }
            }

            return(View());
        }
コード例 #31
0
        public ActionResult Index(string Title, double?isbn, double?favo, double?cart)
        {
            string favoISBN = favo.ToString();
            string cartISBN = cart.ToString();
            var    _isbn    = isbn.ToString();

            if (favoISBN != "" && favoISBN != null)
            {
                if (Session["User_id"] == null)
                {
                    TempData["favo"] = "<script>alert('You need to login first.');</script>";
                }
                else
                {
                    var    list    = db.Favorites.Select(s => s);
                    double isbnD   = Convert.ToDouble(isbn);
                    int    User_id = Convert.ToInt32(Session["User_id"]);

                    bool has = list.Any(cus => cus.ISBN == isbnD && cus.User_id == User_id);
                    //CHECKEN OF ISBN AL IN FAVORIETEN ZIT VAN DE GEBRUIKER.
                    if (has)
                    {
                        using (DatabaseEntities1 db = new DatabaseEntities1())
                        {
                            db.Favorites.Remove(db.Favorites.Single(cus => cus.ISBN == isbnD && cus.User_id == User_id));
                            db.SaveChanges();
                        }
                    }
                    else
                    {
                        // ISBN TOEVOEGEN AAN FAVORIETEN

                        using (DatabaseEntities1 db = new DatabaseEntities1())
                        {
                            var favo1 = new Favorite()
                            {
                                User_id = User_id, ISBN = Convert.ToDouble(isbn)
                            };
                            db.Favorites.Add(favo1);
                            db.SaveChanges();
                        }
                    }
                }
            }

            //Cart button toevoegen
            if (cartISBN != "" && cartISBN != null)
            {
                if (Session["User_id"] != null)
                {
                    var    list    = db.Carts.Select(s => s);
                    double isbnD   = Convert.ToDouble(isbn);
                    int    User_id = Convert.ToInt32(Session["User_id"]);

                    bool has = list.Any(cus => cus.ISBN == isbnD && cus.User_id == User_id);

                    if (has)
                    {
                        using (DatabaseEntities1 db = new DatabaseEntities1())
                        {
                            db.Carts.Remove(db.Carts.Single(cus => cus.ISBN == isbnD && cus.User_id == User_id));
                            db.SaveChanges();
                        }
                    }
                    else
                    {
                        using (DatabaseEntities1 db = new DatabaseEntities1())
                        {
                            var cart1 = new Cart()
                            {
                                User_id = User_id, ISBN = Convert.ToDouble(isbn), Quantity = 1
                            };
                            db.Carts.Add(cart1);
                            db.SaveChanges();
                        }
                    }
                }
                else
                {
                    // UNREGISTERED USER
                    if (Session["shoppingCart"] == null || Session["shoppingCart"] == "")
                    {
                        Session["shoppingCart"] = isbn.ToString();
                    }
                    else
                    {
                        List <string> isbns = Session["shoppingCart"].ToString().Split(',').ToList();
                        //Check of die al in je cart zit.
                        //Deletes product from cart
                        if (isbns.Contains(_isbn))
                        {
                            isbns.RemoveAll(s => _isbn == s);
                            var newcart = String.Join(",", isbns);
                            Session["shoppingCart"] = newcart;
                        }
                        else
                        {
                            Session["shoppingCart"] = Session["shoppingCart"] + "," + isbn.ToString();
                        }
                    }
                }
            }

            return(View());
        }