// GET: Customer public ActionResult Index(ManageMessageId? message) { string userId = User.Identity.GetUserId(); if (String.IsNullOrEmpty(userId)) return RedirectToAction("Error404", "Home"); var user = db.Users.Where(x => x.Id == userId).FirstOrDefault(); if (User.IsInRole("Customer") && user.ActivationCode == null) { if (User.IsInRole("Supplier")) return RedirectToAction("Index", "Supplier"); if (User.IsInRole("Admin")) return RedirectToAction("Index", "Admin"); var orderList = new List<CustomerRetrieveOrdersViewModel>(); var records = from o in db.Orders where o.CustomerUserId == userId && o.Status != "Inactive" select o; foreach (var item in records.OrderByDescending(o => o.DtCreated).Take(5)) { var orderItem = new CustomerRetrieveOrdersViewModel() { OrderId = item.OrderId, ModelId = item.ModelId, ModelNumber = (from m in db.Models where m.ModelId == item.ModelId select m.ModelNumber).FirstOrDefault(), SupplierName = (from c in db.Suppliers where c.SupplierId == item.SupplierId select c.Name).FirstOrDefault(), Status = item.Status, DtCreated = item.DtCreated, HasReturn = item.HasReturn }; orderList.Add(orderItem); } ViewBag.Orders = orderList; ViewBag.StatusMessage = message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed." : message == ManageMessageId.Error ? "An error has occurred." : ""; GetCustomerReturnNotification(); GetCustomerNotification(); return View(); } return RedirectToAction("Login", "Account"); }
public ActionResult CustomerRetrieveOrders(int? page, ManageMessageId? message) { try { var initialRequest = Request.Url.AbsoluteUri.ToString(); if (!String.IsNullOrWhiteSpace(initialRequest)) Session["InitialRequest"] = initialRequest; string userId = User.Identity.GetUserId(); if (userId == null) { return RedirectToAction("Login", "Account"); } if (User.IsInRole("Customer")) { var orderList = new List<CustomerRetrieveOrdersViewModel>(); var records = from o in db.Orders where o.CustomerUserId == userId && o.Status != "Inactive" select o; foreach (var item in records) { var orderItem = new CustomerRetrieveOrdersViewModel() { OrderId = item.OrderId, ModelId = item.ModelId, ModelNumber = (from m in db.Models where m.ModelId == item.ModelId select m.ModelNumber).FirstOrDefault(), SupplierName = (from c in db.Suppliers where c.SupplierId == item.SupplierId select c.Name).FirstOrDefault(), Status = item.Status, DtCreated = item.DtCreated, HasReturn = item.HasReturn }; orderList.Add(orderItem); } ViewBag.Title = "List of your Orders"; GetCustomerReturnNotification(); GetCustomerNotification(); var pageNumber = page ?? 1; var pageOfProducts = orderList.OrderBy(o => o.Status).ToPagedList(pageNumber, 10); ViewBag.pageOfProducts = pageOfProducts; ViewBag.CustomerOrderStatus = message == ManageMessageId.CancelOrderSuccess ? "Your Order has been cancelled." : message == ManageMessageId.ReviewSuccess ? "Your review has been successfully saved." : message == ManageMessageId.ReviewFailure ? "You have already reviewed this model." : message == ManageMessageId.Error ? "An error has occurred." : ""; return View(); } return RedirectToAction("Login", "Account"); } catch (Exception ex) { return new HttpStatusCodeResult(HttpStatusCode.InternalServerError, ex.ToString()); } }
public ActionResult RetrieveInactiveOrders(int? page, ManageMessageId? message) { string userId = User.Identity.GetUserId(); if (userId == null) { return RedirectToAction("Login", "Account"); } if (User.IsInRole("Customer")) { var inactiveOrders = db.Orders.Where(o => o.CustomerUserId == userId && o.Status == "Inactive"); var orderList = new List<CustomerRetrieveOrdersViewModel>(); foreach (var item in inactiveOrders) { var orderItem = new CustomerRetrieveOrdersViewModel() { OrderId = item.OrderId, ModelId = item.ModelId, ModelNumber = (from m in db.Models where m.ModelId == item.ModelId select m.ModelNumber).FirstOrDefault(), SupplierName = (from c in db.Suppliers where c.SupplierId == item.SupplierId select c.Name).FirstOrDefault(), Status = item.Status, DtCreated = item.DtCreated, HasReturn = item.HasReturn }; orderList.Add(orderItem); } ViewBag.Title = "List of your Cancelled Orders"; GetCustomerReturnNotification(); GetCustomerNotification(); var pageNumber = page ?? 1; var pageOfProducts = orderList.ToPagedList(pageNumber, 10); ViewBag.pageOfProducts = pageOfProducts; ViewBag.CustomerOrderStatus = message == ManageMessageId.CancelOrderSuccess ? "Your Order has been cancelled." : message == ManageMessageId.Error ? "An error has occurred." : ""; return View(); } if (User.IsInRole("Supplier")) { return RedirectToAction("Index", "Supplier"); } if (User.IsInRole("Admin")) { return RedirectToAction("Index", "Admin"); } return RedirectToAction("Index", "Home"); }
public ActionResult UpdatedOrders(int? page) { var userId = User.Identity.GetUserId(); var updatedOrders = db.Orders.Where(o => o.CustomerUserId == userId && o.Notification == "Customer").ToList(); if (updatedOrders.Count() <= 0) { return RedirectToAction("CustomerRetrieveOrders"); } foreach (var item in updatedOrders) { item.Notification = null; } db.SaveChanges(); var updatedOrderList = new List<CustomerRetrieveOrdersViewModel>(); foreach (var item in updatedOrders) { var orderItem = new CustomerRetrieveOrdersViewModel() { OrderId = item.OrderId, ModelId = item.ModelId, ModelNumber = (from m in db.Models where m.ModelId == item.ModelId select m.ModelNumber).FirstOrDefault(), SupplierName = (from c in db.Suppliers where c.SupplierId == item.SupplierId select c.Name).FirstOrDefault(), Status = item.Status, DtCreated = item.DtCreated, HasReturn = item.HasReturn }; updatedOrderList.Add(orderItem); } GetCustomerReturnNotification(); GetCustomerNotification(); ViewBag.Title = "List of your Updated Orders"; ViewBag.CustomerOrderStatus = "Your order status has been updated. Please check it."; var pageNumber = page ?? 1; var pageOfProducts = updatedOrderList.ToPagedList(pageNumber, 10); ViewBag.pageOfProducts = pageOfProducts; return View("CustomerRetrieveOrders"); }