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}"
            }));
        }
Exemple #3
0
        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));
        }
Exemple #5
0
 public ProviderProximitySearchViewModel(ProviderProximitySearchParametersViewModel searchParameters)
 {
     SearchParameters = searchParameters;
 }