// GET: Parents public async Task <IActionResult> Index(SortState sortState, int page = 1) { ParentsFilterViewModel filter = HttpContext.Session.Get <ParentsFilterViewModel>(filterKey); if (filter == null) { filter = new ParentsFilterViewModel { MFullName = string.Empty, FFullName = string.Empty }; HttpContext.Session.Set(filterKey, filter); } string key = $"{typeof(Parent).Name}-{page}-{sortState}-{filter.MFullName}-{filter.FFullName}"; if (!_cache.TryGetValue(key, out ParentsViewModel model)) { model = new ParentsViewModel(); IQueryable <Parent> parents = GetSortedParents(sortState, filter.MFullName, filter.FFullName); int count = parents.Count(); model.PageViewModel = new PageViewModel(page, count, pageSize); model.Parents = count == 0 ? new List <Parent>() : parents.Skip((model.PageViewModel.PageIndex - 1) * pageSize).Take(pageSize).ToList(); model.SortViewModel = new SortViewModel(sortState); model.ParentsFilterViewModel = filter; _cache.Set(key, model); } return(View(model)); }
public IActionResult Index(ParentsFilterViewModel filterModel, int page) { ParentsFilterViewModel filter = HttpContext.Session.Get <ParentsFilterViewModel>(filterKey); if (filter != null) { filter.MFullName = filterModel.MFullName; filter.FFullName = filterModel.FFullName; HttpContext.Session.Remove(filterKey); HttpContext.Session.Set(filterKey, filter); } return(RedirectToAction("Index", new { page })); }