Exemplo n.º 1
0
        public IActionResult Index(SortState sortState = SortState.TypeOfGsmAsc, int page = 1)
        {
            CostsFilterViewModel filter = HttpContext.Session.Get <CostsFilterViewModel>(filterKey);

            if (filter == null)
            {
                filter = new CostsFilterViewModel {
                    PricePerLiter = 0, DateOfCostGsm = default
                };
                HttpContext.Session.Set(filterKey, filter);
            }

            string modelKey = $"{typeof(Costs).Name}-{page}-{sortState}-{filter.PricePerLiter}-{filter.DateOfCostGsm}";

            if (!cache.TryGetValue(modelKey, out CostsViewModel model))
            {
                model = new CostsViewModel();

                IQueryable <Costs> costs = GetSortedEntities(sortState, filter.PricePerLiter, filter.DateOfCostGsm);

                int count    = costs.Count();
                int pageSize = 10;
                model.PageViewModel = new PageViewModel(count, page, pageSize);

                model.Costs                = count == 0 ? new List <Costs>() : costs.Skip((model.PageViewModel.PageNumber - 1) * pageSize).Take(pageSize).ToList();
                model.SortViewModel        = new SortViewModel(sortState);
                model.CostsFilterViewModel = filter;

                cache.Set(modelKey, model);
            }

            return(View(model));
        }
Exemplo n.º 2
0
        public IActionResult Index(CostsFilterViewModel filterModel, int page)
        {
            CostsFilterViewModel filter = HttpContext.Session.Get <CostsFilterViewModel>(filterKey);

            if (filter != null)
            {
                filter.PricePerLiter = filterModel.PricePerLiter;
                filter.DateOfCostGsm = filterModel.DateOfCostGsm;

                HttpContext.Session.Remove(filterKey);
                HttpContext.Session.Set(filterKey, filter);
            }

            return(RedirectToAction("Index", new { page }));
        }