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)); }
public ActionResult Index(string Name, string City, string Street, GridSortOptions sort, [DefaultValue(1)] int page) { IQueryable <ServiceProviderViewModel> providers = _serviceProviderRepo.GetAllServiceProvider(); if (!User.IsInRole("administrator")) { providers.Where(s => s.IsConfirmed == true); } if (string.IsNullOrWhiteSpace(sort.Column)) { sort.Column = "ServiceProviderId"; } if (!string.IsNullOrWhiteSpace(Name)) { providers = providers.Where(c => c.Name.Contains(Name)); } if (!string.IsNullOrWhiteSpace(City)) { providers = providers.Where(c => c.City.Contains(City)); } if (!string.IsNullOrWhiteSpace(Street)) { providers = providers.Where(c => c.Street.Contains(Street)); } //potrzebna przestrzen nazw using MvcContrib.Sorting; using MvcContrib.Pagination; var serviceProviderPagedList = providers.OrderBy(sort.Column, sort.Direction).AsPagination(page, 5); ServiceProviderFilterViewModel serviceProviderFilterViewModel = new ServiceProviderFilterViewModel(); ServiceProviderListContainerViewModel customerListContainerViewModel = new ServiceProviderListContainerViewModel { ServiceProviderPagedList = serviceProviderPagedList, ServiceProviderFilterViewModel = serviceProviderFilterViewModel, GridSortOptions = sort }; return(View(customerListContainerViewModel)); }