public async Task<IActionResult> GetDatasetVersions(string datasetId, [FromQuery]int pageNumber, [FromQuery]int pageSize) { Guard.IsNullOrWhiteSpace(datasetId, nameof(datasetId)); Dictionary<string, string[]> datasetIdFilter = new Dictionary<string, string[]> {{"datasetId", new[] {datasetId}}}; SearchRequestViewModel searchRequest = new SearchRequestViewModel() { PageNumber = pageNumber, PageSize = pageSize, Filters = datasetIdFilter, IncludeFacets = true }; DatasetVersionSearchResultViewModel searchResult = await _datasetSearchService.PerformSearchDatasetVersion(searchRequest); if (searchResult != null) { return new OkObjectResult(searchResult); } else { return new InternalServerErrorResult( "There was an error retrieving data sources from the Search Version Index."); } }
public async Task PerformSearchDatasetVersion_GivenClientReturnsResult_ShouldReturnCorrectlyMappedResult() { // Arrange IDatasetsApiClient mockDatasetsApiClient = Substitute.For <IDatasetsApiClient>(); ILogger mockLogger = Substitute.For <ILogger>(); IMapper mockMapper = MappingHelper.CreateFrontEndMapper(); IFeatureToggle featureToggle = CreateFeatureToggle(); IDatasetSearchService datasetSearchService = new DatasetSearchService(mockDatasetsApiClient, mockMapper, mockLogger, featureToggle); PagedResult <DatasetVersionSearchResultModel> itemResult = GeneratedPagedResultsDatasetVersionSearchResultModel(50); itemResult.PageNumber = 2; itemResult.PageSize = 50; itemResult.TotalItems = 175; mockDatasetsApiClient .FindDatasetsVersions(Arg.Any <SearchFilterRequest>()) .Returns(itemResult); // Act DatasetVersionSearchResultViewModel datasetVersionSearchResultViewModel = await datasetSearchService.PerformSearchDatasetVersion(new SearchRequestViewModel()); // Assert datasetVersionSearchResultViewModel.Should().NotBeNull(); datasetVersionSearchResultViewModel.Results.Count().Should().Be(50); datasetVersionSearchResultViewModel.TotalResults.Should().Be(175); datasetVersionSearchResultViewModel.CurrentPage.Should().Be(2); datasetVersionSearchResultViewModel.PageSize.Should().Be(50); }
public async Task <DatasetVersionSearchResultViewModel> PerformSearchDatasetVersion(SearchRequestViewModel searchRequest) { int pageNumber = Math.Max(1, searchRequest.PageNumber.GetValueOrDefault(1)); int pageSize = searchRequest.PageSize.GetValueOrDefault(50); SearchModel requestOptions = new SearchModel { PageNumber = pageNumber, Top = pageSize, SearchTerm = searchRequest.SearchTerm, IncludeFacets = searchRequest.IncludeFacets, Filters = searchRequest.Filters, SearchMode = searchRequest.SearchMode.AsMatchingEnum <SearchMode>() }; ApiResponse <SearchResults <DatasetVersionIndex> > searchRequestResult = await _datasetsClient.SearchDatasetVersion(requestOptions); if (searchRequestResult == null) { return(null); } SearchResults <DatasetVersionIndex> searchResults = searchRequestResult.Content; DatasetVersionSearchResultViewModel datasetVersionSearchResultViewModel = new DatasetVersionSearchResultViewModel(searchResults.Results, searchResults.TotalCount, pageNumber, (int)Math.Ceiling(searchResults.TotalCount / (double)pageSize), pageSize); return(datasetVersionSearchResultViewModel); }
public async Task <IActionResult> OnGetAsync(string datasetId, int pageNumber = 1, int pageSize = 20) { Guard.IsNullOrWhiteSpace(datasetId, nameof(datasetId)); DatasetId = datasetId; Dictionary <string, string[]> datasetIdFilter = new Dictionary <string, string[]> { { "datasetId", new[] { datasetId } } }; SearchRequestViewModel searchRequest = new SearchRequestViewModel() { PageNumber = pageNumber, PageSize = pageSize, Filters = datasetIdFilter, IncludeFacets = false }; SearchRequestViewModel searchRequestForCurrent = new SearchRequestViewModel() { PageNumber = 1, PageSize = 1, Filters = datasetIdFilter, IncludeFacets = false, }; DatasetVersionSearchResultViewModel searchResult = await _searchService.PerformSearchDatasetVersion(searchRequest); DatasetVersionSearchResultViewModel currentSearchResult = (await _searchService.PerformSearchDatasetVersion(searchRequestForCurrent)); if (searchResult?.Results?.AnyWithNullCheck() == true && currentSearchResult?.Results?.AnyWithNullCheck() == true) { Current = currentSearchResult.Results.First(); DatasetSearchResultViewModel = searchResult; return(Page()); } else { return(new InternalServerErrorResult("There was an error retrieving data sources from the Search Version Index.")); } }
public async Task PerformSearchDatasetVersion_GivenClientReturnsEmptyResult_ShouldReturnCorrectlyMappedResult() { // Arrange IDatasetsApiClient mockDatasetsApiClient = Substitute.For <IDatasetsApiClient>(); ILogger mockLogger = Substitute.For <ILogger>(); IMapper mockMapper = MappingHelper.CreateFrontEndMapper(); IDatasetSearchService datasetSearchService = new DatasetSearchService(mockDatasetsApiClient, mockMapper, mockLogger); mockDatasetsApiClient .SearchDatasets(Arg.Any <SearchModel>()) .Returns((ApiResponse <SearchResults <DatasetIndex> >)null); // Act DatasetVersionSearchResultViewModel datasetVersionSearchResultViewModel = await datasetSearchService.PerformSearchDatasetVersion(new SearchRequestViewModel()); // Assert datasetVersionSearchResultViewModel.Should().BeNull(); }
public async Task PerformSearchDatasetVersion_GivenIsSearchModeAllEnabledFeatureToggleIdTurnedOn_SearchModeIsAll() { // Arrange IDatasetsApiClient mockDatasetsApiClient = Substitute.For <IDatasetsApiClient>(); ILogger mockLogger = Substitute.For <ILogger>(); IMapper mockMapper = MappingHelper.CreateFrontEndMapper(); IFeatureToggle featureToggle = CreateFeatureToggle(true); IDatasetSearchService datasetSearchService = new DatasetSearchService(mockDatasetsApiClient, mockMapper, mockLogger, featureToggle); // Act DatasetVersionSearchResultViewModel datasetVersionSearchResultViewModel = await datasetSearchService.PerformSearchDatasetVersion(new SearchRequestViewModel()); // Assert await mockDatasetsApiClient .Received(1) .FindDatasetsVersions(Arg.Is <SearchFilterRequest>(m => m.SearchMode == SearchMode.All)); }
public async Task PerformSearchDatasetVersion_GivenClientReturnsEmptyResult_ShouldReturnCorrectlyMappedResult() { // Arrange IDatasetsApiClient mockDatasetsApiClient = Substitute.For <IDatasetsApiClient>(); ILogger mockLogger = Substitute.For <ILogger>(); IMapper mockMapper = MappingHelper.CreateFrontEndMapper(); IFeatureToggle featureToggle = CreateFeatureToggle(); IDatasetSearchService datasetSearchService = new DatasetSearchService(mockDatasetsApiClient, mockMapper, mockLogger, featureToggle); mockDatasetsApiClient .FindDatasetsVersions(Arg.Any <SearchFilterRequest>()) .Returns((PagedResult <DatasetVersionSearchResultModel>)null); // Act DatasetVersionSearchResultViewModel datasetVersionSearchResultViewModel = await datasetSearchService.PerformSearchDatasetVersion(new SearchRequestViewModel()); // Assert datasetVersionSearchResultViewModel.Should().BeNull(); }
public async Task <DatasetVersionSearchResultViewModel> PerformSearchDatasetVersion(SearchRequestViewModel searchRequest) { SearchFilterRequest requestOptions = new SearchFilterRequest() { Page = searchRequest.PageNumber ?? 1, PageSize = searchRequest.PageSize ?? 20, SearchTerm = searchRequest.SearchTerm, IncludeFacets = searchRequest.IncludeFacets, Filters = searchRequest.Filters, SearchMode = _featureToggle.IsSearchModeAllEnabled() ? SearchMode.All : SearchMode.Any }; PagedResult <DatasetVersionSearchResultModel> pagedResult = await _datasetsClient.FindDatasetsVersions(requestOptions); if (pagedResult == null) { return(null); } DatasetVersionSearchResultViewModel datasetVersionSearchResultViewModel = new DatasetVersionSearchResultViewModel(pagedResult.Items, pagedResult.TotalItems, pagedResult.PageNumber, pagedResult.TotalPages, pagedResult.PageSize); return(datasetVersionSearchResultViewModel); }