protected override IQueryable <IndexViewModel> ApplyFiltering(IQueryable <IndexViewModel> chainQuery, IFilterParam filterParam) { UpdateResult filterKey; Enum.TryParse(filterParam.FilterKey, true, out filterKey); switch (filterKey) { case UpdateResult.None: break; case UpdateResult.Error: chainQuery = chainQuery.Where(x => x.UpdateResult == UpdateResult.Error); break; case UpdateResult.Success: chainQuery = chainQuery.Where(x => x.UpdateResult == UpdateResult.Success); break; case UpdateResult.NeedManualResolve: chainQuery = chainQuery.Where(x => x.UpdateResult == UpdateResult.NeedManualResolve); break; case UpdateResult.Resolved: chainQuery = chainQuery.Where(x => x.UpdateResult == UpdateResult.Resolved); break; default: throw new ArgumentOutOfRangeException(); } return(chainQuery); }
protected override async Task InitializeFilterSelectList(IQueryable <IndexViewModel> chainQuery, IFilterParam filterParam) { const string all = "All Training Providers"; var selectedTrainingProvider = filterParam.FilterKey ?? all; var availableTrainingProviders = await InputQuery.Select(x => x.TrainingProviderName) .Distinct() .ToListAsync(); FilterSelectList = availableTrainingProviders .Select(x => new SelectListItem { Text = x, Value = x, Selected = x == selectedTrainingProvider }).Concat(new[] { new SelectListItem { Text = all, Value = string.Empty, Selected = selectedTrainingProvider == all } }); }
protected override IQueryable <IndexViewModel> ApplyFiltering(IQueryable <IndexViewModel> chainQuery, IFilterParam filterParam) { var selectedTrainingProviderName = filterParam.FilterKey; if (string.IsNullOrWhiteSpace(selectedTrainingProviderName)) { return(chainQuery); } chainQuery = chainQuery.Where(x => x.TrainingProviderName == selectedTrainingProviderName); return(chainQuery); }
protected override Task InitializeFilterSelectList(IQueryable <IndexViewModel> chainQuery, IFilterParam filterParam) { UserFilter filterKey; Enum.TryParse(filterParam.FilterKey, true, out filterKey); FilterSelectList = new[] { new SelectListItem { Value = UserFilter.None.ToString(), Text = "Filter not applyed", Selected = filterKey == UserFilter.None }, new SelectListItem { Value = UserFilter.InAdministratorRole.ToString(), Text = "Display Administrators", Selected = filterKey == UserFilter.InAdministratorRole }, new SelectListItem { Value = UserFilter.LockoutEnabled.ToString(), Text = "Display Users With Lockout Enabled", Selected = filterKey == UserFilter.LockoutEnabled }, new SelectListItem { Value = UserFilter.LockoutDisabled.ToString(), Text = "Display Users With Lockout Disabled", Selected = filterKey == UserFilter.LockoutDisabled }, new SelectListItem { Value = UserFilter.LockedUsers.ToString(), Text = "Display Locked Users", Selected = filterKey == UserFilter.LockedUsers } }; return(Task.FromResult(true)); }
protected override Task InitializeFilterSelectList(IQueryable <IndexViewModel> chainQuery, IFilterParam filterParam) { UpdateResult filterKey; Enum.TryParse(filterParam.FilterKey, true, out filterKey); FilterSelectList = new[] { new SelectListItem { Value = UpdateResult.None.ToString(), Text = "Filter not applyed", Selected = filterKey == UpdateResult.None }, new SelectListItem { Value = UpdateResult.Success.ToString(), Text = "Display Succeeded", Selected = filterKey == UpdateResult.Success }, new SelectListItem { Value = UpdateResult.Error.ToString(), Text = "Display Failed", Selected = filterKey == UpdateResult.Error }, new SelectListItem { Value = UpdateResult.NeedManualResolve.ToString(), Text = "Display Not Resolved", Selected = filterKey == UpdateResult.NeedManualResolve }, new SelectListItem { Value = UpdateResult.Resolved.ToString(), Text = "Display Resolved", Selected = filterKey == UpdateResult.Resolved } }; return(Task.FromResult(true)); }
protected override IQueryable <IndexViewModel> ApplyFiltering( IQueryable <IndexViewModel> chainQuery, IFilterParam filterParam) { UserFilter filterKey; Enum.TryParse(filterParam.FilterKey, true, out filterKey); switch (filterKey) { case UserFilter.None: break; case UserFilter.InAdministratorRole: chainQuery = chainQuery.Where(x => x.IsAdmin); break; case UserFilter.LockoutEnabled: chainQuery = chainQuery.Where(x => x.LockoutEnabled); break; case UserFilter.LockoutDisabled: chainQuery = chainQuery.Where(x => !x.LockoutEnabled); break; case UserFilter.LockedUsers: chainQuery = chainQuery.Where( x => x.LockoutEndDateUtc.HasValue && SqlFunctions.DateDiff("second", SqlFunctions.GetUtcDate(), x.LockoutEndDateUtc) > 0); break; default: throw new ArgumentOutOfRangeException(); } return(chainQuery); }
protected abstract Task InitializeFilterSelectList(IQueryable <TModel> chainQuery, IFilterParam filterParam);
protected abstract IQueryable <TModel> ApplyFiltering(IQueryable <TModel> chainQuery, IFilterParam filterParam);