public ActionResult Index(string name, string city, string street, GridSortOptions gridSortOptions, [DefaultValue(1)] int page) { // Pobranie listy użtkowników var providersList = _providerRepo.GetAllServiceProviders(); // Ograniczenie listy użtkowników do potwierdzonych dla użytkowników zalogowanych innych niż administrator if (!Roles.GetRolesForUser(WebSecurity.CurrentUserName).Contains("Administrator")) { providersList = providersList.Where(a => a.IsConfirmed); } // Ustawienie domyślnej kolumny sortowania if (string.IsNullOrWhiteSpace(gridSortOptions.Column)) { gridSortOptions.Column = "Id"; } // Filtrowanie po nazwie if (!string.IsNullOrWhiteSpace(name)) { providersList = providersList.Where(a => a.Name.Contains(name)); } // Filtrowanie po mieście if (!string.IsNullOrWhiteSpace(city)) { providersList = providersList.Where(a => a.City.Contains(city)); } // Filtrowanie po ulicy if (!string.IsNullOrWhiteSpace(street)) { providersList = providersList.Where(a => a.Street.Contains(street)); } var providerFilterViewModel = new ServiceProviderFilterViewModel(); // Sortowanie listy użtkowników oraz stronicowanie var providerPagedList = providersList.OrderBy(gridSortOptions.Column, gridSortOptions.Direction) .AsPagination(page, 5); var providerListContainer = new ServiceProviderListContainerViewModel { ServiceProviderPagedList = providerPagedList, ServiceProviderFilterViewModel = providerFilterViewModel, GridSortOptions = gridSortOptions }; return(View(providerListContainer)); }