public async Task <IActionResult> OnGetAsync(string sortOrder, string currentFilter, int currentPageIndex = 1, int pageSize = 3) { var serviceTime = _dateTime.Now; if (serviceTime.Hour < 12) { TempData["Message"] = "It's morning here - Good Morning!"; } else if (serviceTime.Hour < 17) { TempData["Message"] = "It's afternoon here - Good Afternoon!"; } else { TempData["Message"] = "It's evening here - Good Evening!"; } TempData["CurrentSort"] = sortOrder; TempData["CurrentFilter"] = currentFilter; TempData["IdSortParm"] = string.IsNullOrEmpty(sortOrder) ? "id_desc" : ""; TempData["NameSortParm"] = sortOrder == "Name" ? "name_desc" : "Name"; var students = from m in _context.Student.Include(m => m.Subjects) select m; if (!string.IsNullOrEmpty(currentFilter)) { students = students.Where(m => m.StId.Contains(currentFilter) || m.StName.Contains(currentFilter)); } switch (sortOrder) { case "name_desc": students = students.OrderByDescending(x => x.StName); break; case "Name": students = students.OrderBy(x => x.StName); break; case "id_desc": students = students.OrderByDescending(x => x.StId); break; default: students = students.OrderBy(x => x.StId); break; } //Students = await students.ToListAsync(); Students = await PaginatedList <Models.Student> .CreatePagingAsync(students.AsNoTracking(), currentPageIndex, pageSize); return(Page()); }
public async Task <IActionResult> OnPostFilterAsync(string sortOrder, string searchString, int currentPageIndex = 1, int pageSize = 3) { TempData["CurrentSort"] = sortOrder; TempData["CurrentFilter"] = searchString; TempData["IdSortParm"] = string.IsNullOrEmpty(sortOrder) ? "id_desc" : ""; TempData["NameSortParm"] = sortOrder == "Name" ? "name_desc" : "Name"; var students = from m in _context.Student.Include(x => x.Subjects).OrderBy(x => x.StId) select m; if (!string.IsNullOrEmpty(searchString)) { students = students.Where(m => m.StId.Contains(searchString) || m.StName.Contains(searchString)); } switch (sortOrder) { case "name_desc": students = students.OrderByDescending(x => x.StName); break; case "Name": students = students.OrderBy(x => x.StName); break; case "id_desc": students = students.OrderByDescending(x => x.StId); break; default: students = students.OrderBy(x => x.StId); break; } //Students = await students.ToListAsync(); Students = await PaginatedList <Models.Student> .CreatePagingAsync(students.AsNoTracking(), currentPageIndex, pageSize); return(Page()); }