示例#1
0
        public IActionResult Index(InspectorFilter filter, InspectorsSortState sortOrder = InspectorsSortState.FullNameAsc)
        {
            if (!HttpContext.Session.TryGet(out IEnumerable <Inspector> inspectors))
            {
                inspectors = _context.Inspectors.ToList();

                HttpContext.Session.Set(inspectors);
            }

            ViewData["Subdivisions"] = inspectors
                                       .Select(i => new SelectListItem
            {
                Value    = i.Subdivision,
                Text     = i.Subdivision,
                Selected = i.Subdivision == ((string)HttpContext.Items["Subdivision"] ?? "")
            })
                                       .Distinct(new SelectListItemEqualityComparer())
                                       .ToList();

            inspectors = SortInspectors(inspectors, sortOrder);

            inspectors = inspectors.Where(i => i.FullName.StartsWith(filter.FullName ?? ""));
            inspectors = inspectors.Where(i => i.Subdivision.StartsWith(filter.Subdivision ?? ""));

            return(View(inspectors));
        }
        public void OnActionExecuting(ActionExecutingContext context)
        {
            var session = context.HttpContext.Session;

            session.TryGet(out InspectorFilter filter);

            if (context.HttpContext.Request.HasFormContentType)
            {
                var form = context.HttpContext.Request.Form;

                filter = new InspectorFilter
                {
                    FullName    = form["FullName"],
                    Subdivision = form["Subdivision"]
                };

                session.Set(filter);
            }

            if (filter != null)
            {
                context.HttpContext.Items["FullName"]    = filter.FullName;
                context.HttpContext.Items["Subdivision"] = filter.Subdivision;
            }
        }