public IActionResult All(string typeLocation, string type, int page = 1) { int count = this.projectService.GetCountByTypeOfChamber(typeLocation, type); var viewModel = new AllProjectViewModel { Projects = this.projectService.GetAllProjectAsync <IndexProjectViewModel>( typeLocation, type, GlobalConstants.ItemsPerPage, (page - 1) * GlobalConstants.ItemsPerPage), PagesCount = (int)Math.Ceiling((double)count / GlobalConstants.ItemsPerPage), CurrentPage = page, }; if (viewModel.PagesCount == 0) { viewModel.PagesCount = 1; } this.TempData["returnToallProjectstypeLocation"] = typeLocation; this.TempData["returnToallProjectsType"] = type; return(this.View(viewModel)); }
public ActionResult AllProjects(int?customer, int?priority, DateTime?start, DateTime?finish, SortStateProject sortOrder = SortStateProject.NameAsc) { var projects = db.Projects.Include(c => c.Customer); //фильтрация по закзачику if (customer != null && customer != 0) { projects = projects.Where(p => p.CustomerId == customer); } if (priority != null && priority != 0) { projects = projects.Where(p => p.Priority == priority); } //фильтрация по диапазону даты начала if (start != null && finish != null) { projects = projects.Where(x => x.StartDate >= start && x.StartDate <= finish); } //сортировка по полям switch (sortOrder) { case SortStateProject.NameDesc: projects = projects.OrderByDescending(prj => prj.Name); break; case SortStateProject.PriorityAsc: projects = projects.OrderBy(prj => prj.Priority); break; case SortStateProject.PriorityDesc: projects = projects.OrderByDescending(prj => prj.Priority); break; case SortStateProject.StartDateAsc: projects = projects.OrderBy(prj => prj.StartDate); break; case SortStateProject.StartDateDesc: projects = projects.OrderByDescending(prj => prj.StartDate); break; case SortStateProject.FinishDateAsc: projects = projects.OrderBy(prj => prj.FinishDate); break; case SortStateProject.FinishDateDesc: projects = projects.OrderByDescending(prj => prj.FinishDate); break; case SortStateProject.CustomerAsc: projects = projects.OrderBy(prj => prj.Customer.Name); break; case SortStateProject.CustomerDesc: projects = projects.OrderByDescending(prj => prj.Customer.Name); break; default: projects = projects.OrderBy(prj => prj.Name); break; } //формирование модели представления AllProjectViewModel viewModel = new AllProjectViewModel { SortProjectModel = new SortProjectModel(sortOrder), FilterProjectModel = new FilterProjectModel(db.Customers.ToList(), customer, start, finish, priority), Projects = projects }; return(View(viewModel)); }