public When_ProviderProximity_Controller_FilterResults_Is_Called_With_No_Filters() { var routePathService = Substitute.For <IRoutePathService>(); var providerProximityService = Substitute.For <IProviderProximityService>(); var locationService = Substitute.For <ILocationService>(); var providerProximityController = new ProviderProximityController(routePathService, providerProximityService, locationService); var viewModel = new ProviderProximitySearchParametersViewModel { Postcode = "CV12WT" }; _result = providerProximityController.FilterResultsAsync(viewModel); }
public IActionResult FilterResultsAsync(ProviderProximitySearchParametersViewModel viewModel) { if (viewModel.Filters == null || viewModel.Filters.Count(f => f.IsSelected) == 0) { return(RedirectToRoute("GetProviderProximityResults", new { searchCriteria = $"{viewModel.Postcode}" })); } var filters = string.Join("-", viewModel.Filters.Where(f => f.IsSelected).Select(f => f.Name)); return(RedirectToRoute("GetProviderProximityResults", new { searchCriteria = $"{viewModel.Postcode}-{filters}" })); }
public When_ProviderProximity_Controller_FilterResults_Is_Called_With_Single_Filter() { var routePathService = Substitute.For <IRoutePathService>(); var providerProximityService = Substitute.For <IProviderProximityService>(); var locationService = Substitute.For <ILocationService>(); var providerProximityController = new ProviderProximityController(routePathService, providerProximityService, locationService); var routes = new List <string> { "Agriculture, environmental and animal care", "Business and administration" }; var viewModel = new ProviderProximitySearchParametersViewModel(SearchCriteria, routes); _result = providerProximityController.FilterResultsAsync(viewModel); }
public async Task <IActionResult> GetProviderProximityResults(string searchCriteria) { var routeNames = await _routePathService.GetRouteDictionaryAsync(); var searchParametersViewModel = new ProviderProximitySearchParametersViewModel(searchCriteria, routeNames.Values); var viewModel = new ProviderProximitySearchViewModel(searchParametersViewModel); viewModel.SearchResults = new ProviderProximitySearchResultsViewModel { Results = await _providerProximityService.SearchProvidersByPostcodeProximityAsync( new ProviderProximitySearchParametersDto { Postcode = viewModel.SearchParameters.Postcode, SearchRadius = SearchParametersViewModel.DefaultSearchRadius, SelectedRoutes = routeNames.Where(r => viewModel.SearchParameters.SelectedFilters.Contains(r.Value)).Select(r => r.Key).ToList() }) }; return(View("Results", viewModel)); }
public ProviderProximitySearchViewModel(ProviderProximitySearchParametersViewModel searchParameters) { SearchParameters = searchParameters; }