public ActionResult UserOrdersPartial(string navig = "", int page = 1) { string user = HttpContext.User.Identity.Name; if (user == "") { return(View("Index", "Home")); } int pageSize = 5; if (navig == "next") { page++; } else if (navig == "prev") { if (page != 1) { page--; } } IEnumerable <Order> ordersPerPages = CONVERTER3000.TRANSFORMATION(db.Orders .Where(p => p.ApplicationUserID == (db.Users.Where(u => u.UserName == user).FirstOrDefault().Id)) .Include(o => o.ApplicationUser) .Include(o => o.Driver) .OrderBy(o => o.OrderID) .ToList().Skip((page - 1) * pageSize).Take(pageSize).ToList()); PageInfo pageInfo = new PageInfo { PageNumber = page, PageSize = pageSize, TotalItems = db.Orders.Where(o => o.ApplicationUserID == (db.Users.Where(u => u.UserName == user).FirstOrDefault().Id)).Count() }; if (ordersPerPages.Count() == 0) { page = pageInfo.TotalPages; ordersPerPages = CONVERTER3000.TRANSFORMATION(db.Orders .Where(p => p.ApplicationUserID == (db.Users.Where(u => u.UserName == user).FirstOrDefault().Id)) .Include(o => o.ApplicationUser) .Include(o => o.Driver) .OrderBy(o => o.OrderID) .ToList().Skip((page - 1) * pageSize).Take(pageSize).ToList()); } List <State> states = new List <State>(); foreach (Order order in ordersPerPages) { State state = db.OrderStates.Where(o => o.OrderID == order.OrderID).OrderBy(o => o.date).ToList().Last().state; states.Add(state); } ViewModel viewModel = new ViewModel { PageInfo = pageInfo, Orders = ordersPerPages, States = states }; ViewBag.NumberPage = page; ViewBag.TotalPages = pageInfo.TotalPages; return(PartialView(viewModel)); }
public ActionResult Modering(string selected = "", int page = 1, string navig = "") { int pageSize = 5; if (navig == "next") { page++; } else if (navig == "prev") { if (page != 1) { page--; } } if (page < 1) { page = 1; } switch (selected) { case "brands": { IEnumerable <Brand> brandsPerPages = db.Brands.OrderBy(c => c.BrandID).ToList().Skip((page - 1) * pageSize).Take(pageSize); PageInfo pageInfo = new PageInfo { PageNumber = page, PageSize = pageSize, TotalItems = db.Brands.Count() }; if (brandsPerPages.Count() == 0) { page = pageInfo.TotalPages; brandsPerPages = db.Brands.OrderBy(c => c.BrandID).ToList().Skip((page - 1) * pageSize).Take(pageSize); } ViewModel viewModel = new ViewModel { PageInfo = pageInfo, Brands = brandsPerPages }; ViewBag.NumberPage = page; ViewBag.TotalPages = pageInfo.TotalPages; return(PartialView("BrandsPartial", viewModel)); } case "cars": { IEnumerable <Car> carsPerPages = db.Cars.Include(c => c.Brand).Include(c => c.Colour).OrderBy(c => c.CarID).ToList().Skip((page - 1) * pageSize).Take(pageSize); PageInfo pageInfo = new PageInfo { PageNumber = page, PageSize = pageSize, TotalItems = db.Cars.Count() }; if (carsPerPages.Count() == 0) { page = pageInfo.TotalPages; carsPerPages = db.Cars.Include(c => c.Brand).Include(c => c.Colour).OrderBy(c => c.CarID).ToList().Skip((page - 1) * pageSize).Take(pageSize); } ViewModel viewModel = new ViewModel { PageInfo = pageInfo, Cars = carsPerPages }; ViewBag.NumberPage = page; ViewBag.TotalPages = pageInfo.TotalPages; return(PartialView("CarsPartial", viewModel)); } case "colours": { IEnumerable <Colour> coloursPerPages = db.Colours.OrderBy(c => c.ColourID).ToList().Skip((page - 1) * pageSize).Take(pageSize); PageInfo pageInfo = new PageInfo { PageNumber = page, PageSize = pageSize, TotalItems = db.Colours.Count() }; if (coloursPerPages.Count() == 0) { page = pageInfo.TotalPages; coloursPerPages = db.Colours.OrderBy(c => c.ColourID).ToList().Skip((page - 1) * pageSize).Take(pageSize); } ViewModel viewModel = new ViewModel { PageInfo = pageInfo, Colours = coloursPerPages }; ViewBag.NumberPage = page; ViewBag.TotalPages = pageInfo.TotalPages; return(PartialView("ColoursPartial", viewModel)); } case "discounts": { IEnumerable <Discount> discountsPerPages = db.Discounts.OrderBy(c => c.DiscountID).ToList().Skip((page - 1) * pageSize).Take(pageSize); PageInfo pageInfo = new PageInfo { PageNumber = page, PageSize = pageSize, TotalItems = db.Discounts.Count() }; if (discountsPerPages.Count() == 0) { page = pageInfo.TotalPages; discountsPerPages = db.Discounts.OrderBy(c => c.DiscountID).ToList().Skip((page - 1) * pageSize).Take(pageSize); } ViewModel viewModel = new ViewModel { PageInfo = pageInfo, Discounts = discountsPerPages }; ViewBag.NumberPage = page; ViewBag.TotalPages = pageInfo.TotalPages; return(PartialView("DiscountsPartial", viewModel)); } case "drivers": { IEnumerable <Driver> driversPerPages = db.Drivers.Include(d => d.Car).OrderBy(d => d.DriverID).ToList().Skip((page - 1) * pageSize).Take(pageSize); PageInfo pageInfo = new PageInfo { PageNumber = page, PageSize = pageSize, TotalItems = db.Drivers.Count() }; if (driversPerPages.Count() == 0) { page = pageInfo.TotalPages; driversPerPages = db.Drivers.Include(d => d.Car).OrderBy(d => d.DriverID).ToList().Skip((page - 1) * pageSize).Take(pageSize); } ViewModel viewModel = new ViewModel { PageInfo = pageInfo, Drivers = driversPerPages }; ViewBag.NumberPage = page; ViewBag.TotalPages = pageInfo.TotalPages; return(PartialView("DriversPartial", viewModel)); } case "users": { IEnumerable <ApplicationUser> usersPerPages = db.Users.Include(u => u.Orders).Include(u => u.Roles).Include(u => u.Discount).OrderBy(u => u.Id).ToList().Skip((page - 1) * pageSize).Take(pageSize); PageInfo pageInfo = new PageInfo { PageNumber = page, PageSize = pageSize, TotalItems = db.Users.Count() }; if (usersPerPages.Count() == 0) { page = pageInfo.TotalPages; usersPerPages = db.Users.Include(u => u.Orders).Include(u => u.Roles).Include(u => u.Discount).OrderBy(u => u.Id).ToList().Skip((page - 1) * pageSize).Take(pageSize); } ViewModel viewModel = new ViewModel { PageInfo = pageInfo, Users = usersPerPages }; ViewBag.NumberPage = page; ViewBag.TotalPages = pageInfo.TotalPages; return(PartialView("UsersPartial", viewModel)); } case "orders": { IEnumerable <Order> ordersPerPages = CONVERTER3000.TRANSFORMATION( db.Orders .Include(o => o.ApplicationUser) .Include(o => o.Driver) .Include(o => o.Driver.Car) .OrderBy(o => o.OrderID) .ToList() .Skip((page - 1) * pageSize) .Take(pageSize) .ToList()); PageInfo pageInfo = new PageInfo { PageNumber = page, PageSize = pageSize, TotalItems = db.Orders.Count() }; if (ordersPerPages.Count() == 0) { page = pageInfo.TotalPages; ordersPerPages = CONVERTER3000.TRANSFORMATION(db.Orders.Include(o => o.ApplicationUser).Include(o => o.Driver) .Include(o => o.Driver.Car) .OrderBy(o => o.OrderID).ToList().Skip((page - 1) * pageSize).Take(pageSize).ToList()); } List <State> states = new List <State>(); foreach (Order order in ordersPerPages) { State state = db.OrderStates.Where(o => o.OrderID == order.OrderID).OrderBy(o => o.date).ToList().Last().state; states.Add(state); } ViewModel viewModel = new ViewModel { PageInfo = pageInfo, Orders = ordersPerPages, States = states }; ViewBag.NumberPage = page; ViewBag.TotalPages = pageInfo.TotalPages; return(PartialView("OrdersPartial", viewModel)); } default: { PartialViewResult result = Modering("colours", 1, "") as PartialViewResult; return(PartialView(result.ViewName, result.Model)); } } }
public ActionResult FreeOrdersPartial(int id = 0) { string user = HttpContext.User.Identity.Name; List <Order> currentOrderTemp = new List <Order>(); currentOrderTemp = CONVERTER3000.TRANSFORMATION(db.Orders.Where(o => o.Driver.User.UserName == user).ToList()); bool isCurrentOrder = false; List <Order> currentOrder = new List <Order>(); foreach (Order order in currentOrderTemp) { if (order.States.OrderBy(s => s.date).ToList().Last().state.StateName == "Выполняется") { isCurrentOrder = true; currentOrder.Add(order); break; } } if (isCurrentOrder) { ViewBag.Order = true; return(PartialView(currentOrder)); } else { if (id != 0) { lock (o) { Order order = db.Orders.Where(o => o.OrderID == id).FirstOrDefault(); Driver driver = db.Drivers.Include(d => d.User).Where(d => d.User.UserName == user).FirstOrDefault(); if (order != null && order.DriverID != driver.DriverID && order.States.OrderBy(s => s.date).ToList().Last().state.StateName == "Выполняется") { ViewBag.Error = "Заказ уже взят другим водителем. Thank you Mario, but your princess is in another castle!"; } else if (order.States.OrderBy(s => s.date).ToList().Last().state.StateName != "Выполняется") { ViewBag.Order = true; order.DriverID = driver.DriverID; order.Driver = driver; var orderState = new OrderState { OrderID = order.OrderID, StateID = 2, date = DateTime.Now, user = User.Identity.Name }; db.OrderStates.Add(orderState); List <Order> list = new List <Order> { order }; db.SaveChanges(); list = CONVERTER3000.TRANSFORMATION(list); return(PartialView(list)); } } } ViewBag.Order = false; List <Order> freeOrdersTemp = CONVERTER3000.TRANSFORMATION(db.Orders.Where(o => o.ApplicationUser.UserName != user).ToList()); List <Order> freeOrders = new List <Order>(); foreach (Order order in freeOrdersTemp) { string stateName = order.States.OrderBy(s => s.date).ToList().Last().state.StateName; if ((stateName == "Принят" || stateName == "Отменен") && (DateTime.Now - order.StartTime).Days >= 1) { var orderState = new OrderState { OrderID = order.OrderID, StateID = 5, date = DateTime.Now, user = "******" }; db.OrderStates.Add(orderState); db.SaveChanges(); stateName = "Истек срок"; } if (stateName == "Принят" || stateName == "Отменен") { freeOrders.Add(order); } } return(PartialView(freeOrders)); } }