コード例 #1
0
        // 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));
        }
コード例 #2
0
        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 }));
        }