public ActionResult CreateOrder(string phoneNumber, string address) { CurrentCustomer currentCustomer = (CurrentCustomer)Session[SessionBox.CUSTOMER_SESSION]; if (currentCustomer != null) { int customerID = currentCustomer.GetCustomerID(); Customer customer = db.Customers.FirstOrDefault(m => m.CustomerID == customerID); using (DbContextTransaction transaction = db.Database.BeginTransaction()) { try { Order order = new Order(); order.AccountCustomerID = customer.AccountID; order.OrderDate = DateTime.Now; order.TotalMoney = GetCart().ComputeTotalPrice(); order.ModifiredDate = DateTime.Now; order.OrderStatusID = 1;//ordered order.IsActive = true; order.OrderAddress = address; order.PhoneNumber = phoneNumber; db.Orders.Add(order); foreach (var item in GetCart().ListCartItems) { OrderDetail detail = new OrderDetail(); detail.OrderID = order.OrderID; detail.Quantity = item.Quantity; detail.IsActive = true; detail.Money = item.Quantity * item.Book.Price; detail.BookID = item.Book.BookID; db.OrderDetails.Add(detail); var book = db.Books.FirstOrDefault(b => b.BookID == item.Book.BookID); book.Quantity -= item.Quantity; db.Entry(book).State = EntityState.Modified; } db.SaveChanges(); transaction.Commit(); //clear cart GetCart().Clear(); return(Json(new { id = order.OrderID, email = customer.CustomerEmail }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { Console.WriteLine(ex.Message); transaction.Rollback(); return(Json(new { id = 0, email = "" }, JsonRequestBehavior.AllowGet)); } } } else { return(Json(new { id = 0, email = "" }, JsonRequestBehavior.AllowGet)); } }
public ActionResult ConfirmOrder() { //require login CurrentCustomer currentCustomer = (CurrentCustomer)Session[SessionBox.CUSTOMER_SESSION]; if (currentCustomer == null) { return(RedirectToAction("Login", "Account")); } else { Customer customer = AccountDao.FindCustomer(currentCustomer.GetCustomerID()); if (customer != null) { ViewBag.Customer = customer; } return(PartialView("_ConfirmOrder", GetCart())); } }
public JsonResult UpdateStatusOrder_Customer(int orderID) { CurrentCustomer currentCustomer = (CurrentCustomer)Session[SessionBox.CUSTOMER_SESSION]; int currentCustomerId = currentCustomer.GetCustomerID(); int accountId = db.Customers.Where(m => m.CustomerID == currentCustomerId).FirstOrDefault().AccountID; var isContain = db.Orders.Where(m => m.AccountCustomerID == accountId).Select(m => m.OrderID).Contains(orderID); if (!isContain) { Session[SessionBox.CUSTOMER_SESSION] = null; } else { BookDao dao = new BookDao(); dao.UpdateStatusOrder_Customer(orderID); } return(Json(new { status = isContain })); }
// GET: Admin/Profile public ActionResult Index() { CurrentCustomer currentCustomer = (CurrentCustomer)Session[SessionBox.CUSTOMER_SESSION]; if (currentCustomer == null) { return(RedirectToAction("Login", "Account")); } else { Customer customer = AccountDao.FindCustomer(currentCustomer.GetCustomerID()); if (customer != null) { ViewBag.Customer = customer; List <Order> orders = OrderDAO.GetOrder(customer.AccountID); return(PartialView("_IndexProfile", orders)); } else { return(RedirectToAction("Login", "Account")); } } }