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