public IActionResult Index(SortState sortState = SortState.TypeOfGsmAsc, int page = 1) { GsmFilterViewModel filter = HttpContext.Session.Get <GsmFilterViewModel>(filterKey); if (filter == null) { filter = new GsmFilterViewModel { TypeOfGsm = string.Empty, TTkofType = string.Empty }; HttpContext.Session.Set(filterKey, filter); } string modelKey = $"{typeof(Gsm).Name}-{page}-{sortState}-{filter.TypeOfGsm}-{filter.TTkofType}"; if (!cache.TryGetValue(modelKey, out GsmViewModel model)) { model = new GsmViewModel(); IQueryable <Gsm> gsm = GetSortedEntities(sortState, filter.TypeOfGsm, filter.TTkofType); int count = gsm.Count(); int pageSize = 10; model.PageViewModel = new PageViewModel(count, page, pageSize); model.Gsms = count == 0 ? new List <Gsm>() : gsm.Skip((model.PageViewModel.PageNumber - 1) * pageSize).Take(pageSize).ToList(); model.SortViewModel = new SortViewModel(sortState); model.GsmFilterViewModel = filter; cache.Set(modelKey, model); } return(View(model)); }
public IActionResult Index(GsmFilterViewModel filterModel, int page) { GsmFilterViewModel filter = HttpContext.Session.Get <GsmFilterViewModel>(filterKey); if (filter != null) { filter.TypeOfGsm = filterModel.TypeOfGsm; filter.TTkofType = filterModel.TTkofType; HttpContext.Session.Remove(filterKey); HttpContext.Session.Set(filterKey, filter); } return(RedirectToAction("Index", new { page })); }