public ViewResult Index(string currentFilter, string searchString, int?page, string gqwGroup, SortState sortOrder = SortState.NameAsc) { ViewBag.Message = "Список выпускных квалификационных работ"; IQueryable <Gqw> gqws = university.Gqw .Include(x => x.Graduate) .Include(y => y.Reviewer) .Include(z => z.Teacher) .Include(w => w.Sec); ViewData["NameSort"] = sortOrder == SortState.NameAsc ? SortState.NameDesc : SortState.NameAsc; ViewData["ArchSort"] = sortOrder == SortState.ArchAsc ? SortState.ArchDesc : SortState.ArchAsc; if (searchString != null) { page = 1; } else { searchString = currentFilter; } ViewBag.CurrentFilter = searchString; if (!String.IsNullOrEmpty(searchString)) { gqws = gqws.Where(s => s.Graduate.LastName.Contains(searchString) || s.Graduate.FirstName.Contains(searchString) || s.Graduate.Patronymic.Contains(searchString)); } if (!String.IsNullOrEmpty(gqwGroup)) { gqws = gqws.Where(x => x.Graduate.Group.Name == gqwGroup); } gqws = sortOrder switch { SortState.NameDesc => gqws.OrderByDescending(s => s.Graduate.LastName), SortState.ArchAsc => gqws.OrderBy(s => s.IsArchived), SortState.ArchDesc => gqws.OrderByDescending(s => s.IsArchived), _ => gqws.OrderBy(s => s.Graduate.LastName), }; int pageSize = 10; int pageNumber = (page ?? 1); return(View(gqws.ToPagedList(pageNumber, pageSize))); }
public ViewResult Index(string currentFilter, string searchString, int?page, string graduateGroup, SortState sortOrder = SortState.NameAsc) { ViewBag.Message = "Список выпускников"; IQueryable <Graduate> graduates = university.Graduate .Include(x => x.Group) .Include(y => y.Company) .Include(z => z.AcademicDegree); ViewData["NameSort"] = sortOrder == SortState.NameAsc ? SortState.NameDesc : SortState.NameAsc; ViewData["GroupSort"] = sortOrder == SortState.GroupAsc ? SortState.GroupDesc : SortState.GroupAsc; ViewData["LectSort"] = sortOrder == SortState.LectAsc ? SortState.LectDesc : SortState.LectDesc; ViewData["LabSort"] = sortOrder == SortState.LabAsc ? SortState.LabDesc : SortState.LabDesc; ViewData["CitySort"] = sortOrder == SortState.CityAsc ? SortState.CityDesc : SortState.CityAsc; ViewData["CompanySort"] = sortOrder == SortState.CompanyAsc ? SortState.CompanyDesc : SortState.CompanyAsc; ViewData["DegreeSort"] = sortOrder == SortState.DegreeAsc ? SortState.DegreeDesc : SortState.DegreeAsc; if (searchString != null) { page = 1; } else { searchString = currentFilter; } ViewBag.CurrentFilter = searchString; if (!String.IsNullOrEmpty(searchString)) { graduates = graduates.Where(s => s.LastName.Contains(searchString) || s.FirstName.Contains(searchString) || s.Patronymic.Contains(searchString)); } if (!String.IsNullOrEmpty(graduateGroup)) { graduates = graduates.Where(x => x.Group.Name == graduateGroup); } graduates = sortOrder switch { SortState.NameDesc => graduates.OrderByDescending(s => s.LastName), SortState.GroupAsc => graduates.OrderBy(s => s.Group.Name), SortState.GroupDesc => graduates.OrderByDescending(s => s.Group.Name), SortState.LectDesc => graduates.OrderByDescending(s => s.DisciplineLecture), SortState.LectAsc => graduates.OrderBy(s => s.DisciplineLecture), SortState.LabDesc => graduates.OrderByDescending(s => s.DisciplineLaboratoryWorks), SortState.LabAsc => graduates.OrderBy(s => s.DisciplineLaboratoryWorks), SortState.CityDesc => graduates.OrderByDescending(s => s.CurrentCity), SortState.CityAsc => graduates.OrderBy(s => s.CurrentCity), SortState.CompanyDesc => graduates.OrderByDescending(s => s.Company), SortState.CompanyAsc => graduates.OrderBy(s => s.Company), SortState.DegreeDesc => graduates.OrderByDescending(s => s.AcademicDegree), SortState.DegreeAsc => graduates.OrderBy(s => s.AcademicDegree), _ => graduates.OrderBy(s => s.LastName), }; int pageSize = 10; int pageNumber = (page ?? 1); return(View(graduates.ToPagedList(pageNumber, pageSize))); }