public When_ProviderProximity_Controller_Download_Provider_Spreadsheet_Is_Called() { var locationService = Substitute.For <ILocationService>(); _providerProximityService = Substitute.For <IProviderProximityService>(); var routePathService = Substitute.For <IRoutePathService>(); var postcode = "CV1 2WT"; var filters = "Digital-Analog"; _searchParameters = new ProviderProximitySearchParametersDto { Postcode = postcode, SelectedRouteNames = new List <string>(filters.Split('-')) }; _providerProximityService.GetProviderProximitySpreadsheetDataAsync( Arg.Any <ProviderProximitySearchParametersDto>()) .Returns( new FileDownloadDto { FileName = "test_file.xlsx", ContentType = "application/file", FileContent = new byte[] { 01, 02 } }); var providerProximityController = new ProviderProximityController(routePathService, _providerProximityService, locationService); _result = providerProximityController.DownloadProviderProximitySpreadsheetAsync(postcode, filters).GetAwaiter().GetResult(); }
public async Task <IActionResult> DownloadProviderProximitySpreadsheetAsync(string postcode, string filters) { var allFilters = string.IsNullOrWhiteSpace(filters) ? "" : WebUtility.UrlDecode(filters); var filtersList = allFilters.Split('-', StringSplitOptions.RemoveEmptyEntries); var searchParameters = new ProviderProximitySearchParametersDto { Postcode = postcode, SearchRadius = SearchParametersViewModel.DefaultSearchRadius, SelectedRouteNames = filtersList }; var downloadedFileInfo = await _providerProximityService.GetProviderProximitySpreadsheetDataAsync(searchParameters); return(File(downloadedFileInfo.FileContent, downloadedFileInfo.ContentType, downloadedFileInfo.FileName)); }