public AllAdminsViewModel( IEnumerable <AdminUser> adminUsers, IEnumerable <Category> categories, AdminUser loggedInAdminUser ) { Admins = adminUsers.Select(au => new SearchableAdminViewModel(au, loggedInAdminUser, new ReturnPageQuery(1, $"{au.Id}-card"))); Filters = AdministratorsViewModelFilterOptions.GetAllAdministratorsFilterModels(categories) .SelectAppliedFilterViewModels(); }
public AllAdminsViewModel(IEnumerable <AdminUser> adminUsers, IEnumerable <string> categories) { Admins = adminUsers.Select(au => new SearchableAdminViewModel(au)); Filters = new[] { new FilterViewModel("Role", "Role", AdministratorsViewModelFilterOptions.RoleOptions), new FilterViewModel( "CategoryName", "Category", AdministratorsViewModelFilterOptions.GetCategoryOptions(categories) ), new FilterViewModel( "AccountStatus", "Account Status", AdministratorsViewModelFilterOptions.AccountStatusOptions ) }.SelectAppliedFilterViewModels(); }
public CentreAdministratorsViewModel( int centreId, IEnumerable <AdminUser> adminUsers, IEnumerable <string> categories, string?searchString, string?filterBy, int page ) : base(searchString, page, true, filterBy: filterBy, searchLabel: "Search administrators") { CentreId = centreId; var sortedItems = GenericSortingHelper.SortAllItems( adminUsers.AsQueryable(), DefaultSortOption, Ascending ); var searchedItems = GenericSearchHelper.SearchItems(sortedItems, SearchString); var filteredItems = FilteringHelper.FilterItems(searchedItems.AsQueryable(), filterBy).ToList(); MatchingSearchResults = filteredItems.Count; SetTotalPages(); var paginatedItems = GetItemsOnCurrentPage(filteredItems); Admins = paginatedItems.Select(adminUser => new SearchableAdminViewModel(adminUser)); Filters = new[] { new FilterViewModel("Role", "Role", AdministratorsViewModelFilterOptions.RoleOptions), new FilterViewModel( "CategoryName", "Category", AdministratorsViewModelFilterOptions.GetCategoryOptions(categories) ), new FilterViewModel( "AccountStatus", "Account Status", AdministratorsViewModelFilterOptions.AccountStatusOptions ) }; }