public string GetNatureAreasBySearchFilter([FromBody] SearchFilterRequest searchFilterRequest) { var natureAreas = SqlServer.GetNatureAreasBySearchFilter(searchFilterRequest); var r = GeoJsonConverter.NatureAreasToGeoJson(natureAreas, !searchFilterRequest.CenterPoints); return(r); }
public IEnumerable <INatureAreaGeoJson> GetNatureAreasBySearchFilter(SearchFilterRequest searchFilterRequest) { int natureAreaCount; var natureAreas = GetNatureAreasBySearchFilter( searchFilterRequest.AnalyzeSearchFilterRequest(), searchFilterRequest.NatureAreaTypeCodes, searchFilterRequest.DescriptionVariableCodes, searchFilterRequest.Municipalities, searchFilterRequest.Counties, searchFilterRequest.ConservationAreas, searchFilterRequest.Institutions, searchFilterRequest.RedlistAssessmentUnits, searchFilterRequest.RedlistCategories, searchFilterRequest.Geometry, searchFilterRequest.BoundingBox, searchFilterRequest.EpsgCode, searchFilterRequest.CenterPoints, 0, 0, int.MaxValue, out natureAreaCount ); return(natureAreas); }
public async Task <SpecificationDatasourceRelationshipSearchResultViewModel> PerformSearch(SearchRequestViewModel request) { var filters = request.Filters.IsNullOrEmpty() ? new ConcurrentDictionary <string, string[]>() : request.Filters; if (filters.ContainsKey("")) { filters.Remove(""); } SearchFilterRequest requestOptions = new SearchFilterRequest() { Page = request.PageNumber.HasValue ? request.PageNumber.Value : 1, PageSize = request.PageSize.HasValue ? request.PageSize.Value : 50, SearchTerm = request.SearchTerm, IncludeFacets = request.IncludeFacets, Filters = filters }; if (request.PageNumber.HasValue && request.PageNumber.Value > 0) { requestOptions.Page = request.PageNumber.Value; } PagedResult <SpecificationDatasourceRelationshipSearchResultItem> pagedResult = await _specsClient.FindSpecificationAndRelationships(requestOptions); if (pagedResult == null) { _logger.Error("Find specification data source relationships HTTP request failed"); } int totalPages = pagedResult.TotalItems / pagedResult.PageSize; if (pagedResult.TotalItems % pagedResult.PageSize > 0) { totalPages++; } int startNumber = ((pagedResult.PageSize * pagedResult.PageNumber) - pagedResult.PageSize) + 1; int endNumber = (pagedResult.PageSize * pagedResult.PageNumber); if (endNumber > pagedResult.TotalItems) { endNumber = pagedResult.TotalItems; } SpecificationDatasourceRelationshipSearchResultViewModel viewModel = new SpecificationDatasourceRelationshipSearchResultViewModel { Items = pagedResult.Items, PagerState = new PagerState(pagedResult.PageNumber, pagedResult.TotalPages), TotalCount = pagedResult.TotalItems, StartItemNumber = startNumber, EndItemNumber = endNumber }; return(viewModel); }
public FileStreamResult ExportNatureAreasBySearchFilter([FromBody] SearchFilterRequest searchFilterRequest) { var metadatas = FindMetadatasBySearchFilter(searchFilterRequest); var xDocument = xmlConverter.ToXml(metadatas); return(ToZippedFileStreamResult(xDocument)); }
public FileStreamResult ExportNatureAreasAsGmlBySearchFilter([FromBody] SearchFilterRequest searchFilterRequest) { int epsgCode; var natureAreas = FindNatureAreasBySearchFilter(searchFilterRequest, out epsgCode); var xDocument = gmlWriter.ConvertToGml(natureAreas); return(ToZippedFileStreamResult(xDocument)); }
public void GetNatureAreasBySearchFilter() { var request = new SearchFilterRequest { CenterPoints = true }; Collection <NatureArea> r = SqlServer.GetNatureAreasBySearchFilter(request); Assert.True(r[0].Area.InstanceOf("POINT").IsTrue); }
public void GetNatureAreasBySearchFilter() { var request = new SearchFilterRequest { CenterPoints = true }; var r = SqlServer.GetNatureAreasBySearchFilter(request); Assert.True(r.First().Area.InstanceOf("POINT").IsTrue); }
public FileStreamResult ExportNatureAreasAsXlsxBySearchFilter( [FromBody] SearchFilterRequest searchFilterRequest) { var natureAreas = FindNatureAreasBySearchFilter(searchFilterRequest); var excelGenerator = new ExcelGenerator(Naturkodetrær.Naturvariasjon); var xlsxMemoryStream = excelGenerator.GenerateXlsxStream(natureAreas); return(new FileStreamResult(xlsxMemoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")); }
public FileStreamResult ExportNatureAreasAsShapeBySearchFilter( [FromBody] SearchFilterRequest searchFilterRequest) { int epsgCode; var natureAreas = FindNatureAreasBySearchFilter(searchFilterRequest, out epsgCode); var zipMemoryStream = ShapeGenerator.GenerateShapeFile(natureAreas, epsgCode); return(new FileStreamResult(zipMemoryStream, "application/zip")); }
public string GetNatureAreasBySearchFilterV2([FromBody] SearchFilterRequest searchFilterRequest) { var search = new SearchV2(Config.Settings.ConnectionString); var list = search.GetNatureAreasBySearchFilter(searchFilterRequest); var geoJson = GeoJsonConverter.NatureAreasToGeoJson(list, !searchFilterRequest.CenterPoints); return(geoJson); }
public FileStreamResult ExportNatureAreasBySearchFilter([FromBody] SearchFilterRequest searchFilterRequest) { var metadatas = FindMetadatasBySearchFilter(searchFilterRequest); var xDocument = xmlConverter.ToXml(metadatas); Stream xmlStream = new MemoryStream(); xDocument.Save(xmlStream); xmlStream.Position = 0; return(new FileStreamResult(xmlStream, "application/xml")); }
private static IEnumerable <Metadata> FindMetadatasBySearchFilter(SearchFilterRequest searchFilterRequest) { var natureLevels = searchFilterRequest.AnalyzeSearchFilterRequest(); return(SqlServer.GetMetadatasBySearchFilter( natureLevels, searchFilterRequest.NatureAreaTypeCodes, searchFilterRequest.DescriptionVariableCodes, searchFilterRequest.Municipalities, searchFilterRequest.Counties, searchFilterRequest.ConservationAreas, searchFilterRequest.Institutions, searchFilterRequest.Geometry, "", searchFilterRequest.EpsgCode )); }
private async Task GenerateCalculationCodeWithReturnFromDatasets(SpecGeneratorConfiguration configuration, Specification specification) { SearchFilterRequest calcRequest = new SearchFilterRequest() { Filters = new Dictionary <string, string[]>() { { "specificationId", new[] { "testId" } } }, PageSize = 500, }; PagedResult <CalculationSearchResultItem> calculations = await _calcsClient.FindCalculations(calcRequest); foreach (CalculationSearchResultItem calc in calculations.Items) { } }
public string ExportNatureAreasAsGmlBySearchFilter([FromBody] SearchFilterRequest searchFilterRequest) { int epsgCode; var natureAreas = FindNatureAreasBySearchFilter(searchFilterRequest, out epsgCode); var xDocument = gmlWriter.ConvertToGml(natureAreas); var builder = new StringBuilder(); using (TextWriter writer = new StringWriter(builder)) { xDocument.Save(writer); } return(builder.ToString()); //Stream xmlStream = new MemoryStream(); //xDocument.Save(xmlStream); //xmlStream.Position = 0; //return new DownloadFileResult("natur.xml", xmlStream, "application/xml"); }
private static Collection <NatureArea> FindNatureAreasBySearchFilter(SearchFilterRequest searchFilterRequest, out int epsgCode) { var metadatas = FindMetadatasBySearchFilter(searchFilterRequest); var natureAreas = new Collection <NatureArea>(); epsgCode = -1; foreach (var metadata in metadatas) { if (epsgCode == -1) { epsgCode = metadata.GetAreaEpsgCode(); } natureAreas.AddRange(metadata.NatureAreas); } return(natureAreas); }
private static IEnumerable <Metadata> FindMetadatasBySearchFilter(SearchFilterRequest searchFilterRequest) { var natureLevels = searchFilterRequest.AnalyzeSearchFilterRequest(); var search = new SearchV2(Config.Settings.ConnectionString); return(search.GetMetadatasBySearchFilter( natureLevels, searchFilterRequest.NatureAreaTypeCodes, searchFilterRequest.DescriptionVariableCodes, searchFilterRequest.Municipalities, searchFilterRequest.Counties, searchFilterRequest.ConservationAreas, searchFilterRequest.Institutions, searchFilterRequest.RedlistAssessmentUnits, searchFilterRequest.RedlistCategories, searchFilterRequest.Geometry, string.Empty, searchFilterRequest.EpsgCode )); }
public async Task FindCalculations() { SearchFilterRequest input = new SearchFilterRequest(); SearchQueryRequest expectedRequest = SearchQueryRequest.FromSearchFilterRequest(input); SearchResults <CalculationSearchResult> expectedResults = new SearchResults <CalculationSearchResult>(); GivenTheResponse("calculations-search", expectedResults, HttpMethod.Post); ApiResponse <SearchResults <CalculationSearchResult> > apiResponse = await _client.FindCalculations(input); apiResponse?.StatusCode .Should() .Be(HttpStatusCode.OK); apiResponse .Content .Should() .BeEquivalentTo(expectedResults); AndTheRequestContentsShouldHaveBeen(expectedRequest.AsJson()); }
public async Task <CalculationSearchResultViewModel> PerformSearch(SearchRequestViewModel request) { SearchFilterRequest requestOptions = new SearchFilterRequest() { Page = request.PageNumber.HasValue ? request.PageNumber.Value : 1, PageSize = request.PageSize.HasValue ? request.PageSize.Value : 50, SearchTerm = request.SearchTerm, IncludeFacets = request.IncludeFacets, Filters = request.Filters, FacetCount = request.FacetCount, SearchMode = SearchMode.All }; if (request.PageNumber.HasValue && request.PageNumber.Value > 0) { requestOptions.Page = request.PageNumber.Value; } ApiResponse <SearchResults <CalculationSearchResult> > calculationsResult = await _calculationsApiClient.FindCalculations(requestOptions); return(BuildResults(calculationsResult, requestOptions.Page, requestOptions.PageSize)); }
public async Task <PagedResult <DatasetSearchResultItem> > FindDatasets(SearchFilterRequest filterOptions) { Guard.ArgumentNotNull(filterOptions, nameof(filterOptions)); SearchQueryRequest request = SearchQueryRequest.FromSearchFilterRequest(filterOptions); ApiResponse <SearchResults <DatasetSearchResultItem> > results = await PostAsync <SearchResults <DatasetSearchResultItem>, SearchQueryRequest>("datasets-search", request); if (results.StatusCode == HttpStatusCode.OK) { PagedResult <DatasetSearchResultItem> result = new SearchPagedResult <DatasetSearchResultItem>(filterOptions, results.Content.TotalCount) { Items = results.Content.Results, Facets = results.Content.Facets, }; return(result); } else { return(null); } }
private static Collection <NatureAreaExport> FindNatureAreasBySearchFilter( SearchFilterRequest searchFilterRequest) { var metadatas = FindMetadatasBySearchFilter(searchFilterRequest); var natureAreaExports = new Collection <NatureAreaExport>(); foreach (var metadata in metadatas) { foreach (var natureArea in metadata.NatureAreas) { var natureAreaExport = new NatureAreaExport(natureArea) { MetadataContractor = metadata.Contractor.Company, MetadataProgram = metadata.Program, MetadataSurveyScale = metadata.SurveyScale }; natureAreaExports.Add(natureAreaExport); } } return(natureAreaExports); }
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); }
public async Task <ProviderTestsSearchResultViewModel> PerformProviderTestResultsSearch(SearchRequestViewModel request) { SearchFilterRequest requestOptions = new SearchFilterRequest() { Page = request.PageNumber.HasValue ? request.PageNumber.Value : 1, PageSize = request.PageSize.HasValue ? request.PageSize.Value : 50, SearchTerm = request.SearchTerm, IncludeFacets = true, Filters = request.Filters, SearchFields = new[] { "providerName" } }; if (request.PageNumber.HasValue && request.PageNumber.Value > 0) { requestOptions.Page = request.PageNumber.Value; } PagedResult <ProviderTestSearchResultItem> ScenariosResult = await _testsApiClient.FindTestResults(requestOptions); if (ScenariosResult == null) { _logger.Error("Find test results HTTP request failed"); return(null); } ProviderTestsSearchResultViewModel results = new ProviderTestsSearchResultViewModel { TotalResults = ScenariosResult.TotalItems, CurrentPage = ScenariosResult.PageNumber }; IList <SearchFacetViewModel> searchFacets = new List <SearchFacetViewModel>(); if (ScenariosResult.Facets != null) { foreach (SearchFacet facet in ScenariosResult.Facets) { searchFacets.Add(_mapper.Map <SearchFacetViewModel>(facet)); } } results.Facets = searchFacets.AsEnumerable(); List <ProviderTestSearchResultItemViewModel> itemResults = new List <ProviderTestSearchResultItemViewModel>(); foreach (ProviderTestSearchResultItem searchResult in ScenariosResult.Items) { itemResults.Add(_mapper.Map <ProviderTestSearchResultItemViewModel>(searchResult)); } results.Providers = itemResults.AsEnumerable(); if (results.TotalResults == 0) { results.StartItemNumber = 0; results.EndItemNumber = 0; } else { results.StartItemNumber = ((requestOptions.Page - 1) * requestOptions.PageSize) + 1; results.EndItemNumber = results.StartItemNumber + requestOptions.PageSize - 1; } if (results.EndItemNumber > ScenariosResult.TotalItems) { results.EndItemNumber = ScenariosResult.TotalItems; } results.PagerState = new PagerState(requestOptions.Page, ScenariosResult.TotalPages, 4); return(results); }
public async Task <SpecificationDatasourceRelationshipSearchResultViewModel> PerformSearch(SearchRequestViewModel request) { SearchFilterRequest requestOptions = new SearchFilterRequest() { Page = request.PageNumber.HasValue ? request.PageNumber.Value : 1, PageSize = request.PageSize.HasValue ? request.PageSize.Value : 50, SearchTerm = request.SearchTerm, IncludeFacets = false, Filters = request.Filters, }; if (request.PageNumber.HasValue && request.PageNumber.Value > 0) { requestOptions.Page = request.PageNumber.Value; } PagedResult <SpecificationDatasourceRelationshipSearchResultItem> pagedResult = await _specsClient.FindSpecificationAndRelationships(requestOptions); if (pagedResult == null) { _logger.Error("Find specification data source relationships HTTP request failed"); } SpecificationDatasourceRelationshipSearchResultViewModel viewModel = new SpecificationDatasourceRelationshipSearchResultViewModel(); viewModel.TotalResults = pagedResult.TotalItems; viewModel.CurrentPage = pagedResult.PageNumber; IList <SpecificationDatasourceRelationshipSearchResultItemViewModel> itemResults = new List <SpecificationDatasourceRelationshipSearchResultItemViewModel>(); foreach (SpecificationDatasourceRelationshipSearchResultItem item in pagedResult.Items) { itemResults.Add(new SpecificationDatasourceRelationshipSearchResultItemViewModel { SpecificationId = item.Id, SpecificationName = item.Name, CountPhrase = BuildCountPhrase(item.RelationshipCount) }); } IEnumerable <SpecificationDatasourceRelationshipSearchResultItemViewModel> sortedResults = itemResults.OrderBy(f => f.SpecificationName); viewModel.SpecRelationships = sortedResults.ToList(); if (viewModel.TotalResults == 0) { viewModel.StartItemNumber = 0; viewModel.EndItemNumber = 0; } else { viewModel.StartItemNumber = ((requestOptions.Page - 1) * requestOptions.PageSize) + 1; viewModel.EndItemNumber = viewModel.StartItemNumber + requestOptions.PageSize - 1; } if (viewModel.EndItemNumber > pagedResult.TotalItems) { viewModel.EndItemNumber = pagedResult.TotalItems; } viewModel.PagerState = new PagerState(requestOptions.Page, pagedResult.TotalPages, 4); return(viewModel); }
public async Task <TestScenarioSearchResultViewModel> PerformSearch(SearchRequestViewModel request) { SearchFilterRequest requestOptions = new SearchFilterRequest() { Page = request.PageNumber.HasValue ? request.PageNumber.Value : 1, PageSize = request.PageSize.HasValue ? request.PageSize.Value : 50, SearchTerm = request.SearchTerm, IncludeFacets = false, Filters = request.Filters, SearchFields = new string[] { "TestScenarioName" } }; if (request.PageNumber.HasValue && request.PageNumber.Value > 0) { requestOptions.Page = request.PageNumber.Value; } PagedResult <TestScenarioSearchResultItem> TestScenarioResult = await _testEngineApiClient.FindTestScenariosForProvider(requestOptions); if (TestScenarioResult == null) { _logger.Error("Find Test Scenarios HTTP request failed"); return(null); } TestScenarioSearchResultViewModel results = new TestScenarioSearchResultViewModel { TotalResults = TestScenarioResult.TotalItems, CurrentPage = TestScenarioResult.PageNumber }; IList <SearchFacetViewModel> searchFacets = new List <SearchFacetViewModel>(); if (TestScenarioResult.Facets != null) { foreach (SearchFacet facet in TestScenarioResult.Facets) { searchFacets.Add(_mapper.Map <SearchFacetViewModel>(facet)); } } results.Facets = searchFacets.AsEnumerable(); List <TestScenarioSearchResultItemViewModel> itemResults = new List <TestScenarioSearchResultItemViewModel>(); foreach (TestScenarioSearchResultItem searchResult in TestScenarioResult.Items) { itemResults.Add(_mapper.Map <TestScenarioSearchResultItemViewModel>(searchResult)); } itemResults.OrderBy(f => f.LastUpdatedDate); results.TestScenarios = itemResults.AsEnumerable(); if (results.TotalResults == 0) { results.StartItemNumber = 0; results.EndItemNumber = 0; } else { results.StartItemNumber = ((requestOptions.Page - 1) * requestOptions.PageSize) + 1; results.EndItemNumber = results.StartItemNumber + requestOptions.PageSize - 1; } if (results.EndItemNumber > TestScenarioResult.TotalItems) { results.EndItemNumber = TestScenarioResult.TotalItems; } results.PagerState = new PagerState(requestOptions.Page, TestScenarioResult.TotalPages, 4); return(results); }
public object GetNatureAreaStatisticsBySearchFilter([FromBody] SearchFilterRequest request) { var natureLevels = request.AnalyzeSearchFilterRequest(); int natureAreaCount; var search = new SearchV2(Config.Settings.ConnectionString); var natureAreas = search.GetNatureAreasBySearchFilter( natureLevels, request.NatureAreaTypeCodes, request.DescriptionVariableCodes, request.Municipalities, request.Counties, request.ConservationAreas, request.Institutions, request.RedlistAssessmentUnits, request.RedlistCategories, request.Geometry, "", request.EpsgCode, true, 1, 0, int.MaxValue, out natureAreaCount ); var institutions = new Dictionary <string, int>(); var surveyedYears = new Dictionary <int, int>(); var typecastedNatureAreas = natureAreas.Select(na => (NatureArea)na); foreach (var natureArea in typecastedNatureAreas) { if (institutions.ContainsKey(natureArea.Institution)) { institutions[natureArea.Institution]++; } else { institutions[natureArea.Institution] = 1; } if (!natureArea.Surveyed.HasValue) { continue; } if (surveyedYears.ContainsKey(natureArea.Surveyed.Value.Year)) { surveyedYears[natureArea.Surveyed.Value.Year]++; } else { surveyedYears[natureArea.Surveyed.Value.Year] = 1; } } var natureAreaTypeHash = new CodeIds(); foreach (var natureArea in typecastedNatureAreas) { foreach (var parameter in natureArea.Parameters) { var natureAreaType = parameter as NatureAreaType; if (natureAreaType != null) { natureAreaTypeHash.Add(natureAreaType, natureArea); } } } var natureAreaTypeSummary = GetCodeSummaryHierarchy(natureAreaTypeHash, Naturkodetrær.Naturtyper); var natureAreaStatistics = new NatureAreaStatistics { NatureAreaTypes = natureAreaTypeSummary }; foreach (var institution in institutions) { natureAreaStatistics.Institutions.Add(new NatureAreaSummaryItem { Name = institution.Key, NatureAreaCount = institution.Value }); } foreach (var surveyYear in surveyedYears) { natureAreaStatistics.SurveyYears.Add(new NatureAreaSurveyYearSummaryItem { Year = surveyYear.Key, NatureAreaCount = surveyYear.Value }); } var natureAreaStatisticsJson = JObject.FromObject(natureAreaStatistics); RemoveFields(natureAreaStatisticsJson, "HandledIds", true); if (natureAreaStatisticsJson.First == null) { return(natureAreaStatisticsJson); } RemoveFields(natureAreaStatisticsJson.First.First, "Name", false); RemoveFields(natureAreaStatisticsJson.First.First, "Url", false); RemoveFields(natureAreaStatisticsJson.First.First, "Count", false); return(natureAreaStatisticsJson); }
public Task <PagedResult <ProviderVersionSearchResult> > SearchMasterProviders(SearchFilterRequest filterOptions) { throw new NotImplementedException(); }
public async Task <SpecificationSearchResultViewModel> PerformSearch(SearchRequestViewModel request) { SearchFilterRequest requestOptions = new SearchFilterRequest() { Page = request.PageNumber.HasValue ? request.PageNumber.Value : 1, PageSize = request.PageSize.HasValue ? request.PageSize.Value : 50, SearchTerm = request.SearchTerm, IncludeFacets = request.IncludeFacets, Filters = request.Filters, SearchMode = _featureToggle.IsSearchModeAllEnabled() ? SearchMode.All : SearchMode.Any }; if (request.PageNumber.HasValue && request.PageNumber.Value > 0) { requestOptions.Page = request.PageNumber.Value; } PagedResult <SpecificationSearchResultItem> calculationsResult = await _specsApiClient.FindSpecifications(requestOptions); if (calculationsResult == null) { _logger.Error("Find calculations HTTP request failed"); return(null); } SpecificationSearchResultViewModel result = new SpecificationSearchResultViewModel { TotalResults = calculationsResult.TotalItems, CurrentPage = calculationsResult.PageNumber }; List <SearchFacetViewModel> searchFacets = new List <SearchFacetViewModel>(); if (calculationsResult.Facets != null) { foreach (SearchFacet facet in calculationsResult.Facets) { searchFacets.Add(_mapper.Map <SearchFacetViewModel>(facet)); } } result.Facets = searchFacets.AsEnumerable(); List <SpecificationSearchResultItemViewModel> itemResults = new List <SpecificationSearchResultItemViewModel>(); foreach (SpecificationSearchResultItem searchResult in calculationsResult.Items) { itemResults.Add(_mapper.Map <SpecificationSearchResultItemViewModel>(searchResult)); } result.Specifications = itemResults.AsEnumerable(); if (result.TotalResults == 0) { result.StartItemNumber = 0; result.EndItemNumber = 0; } else { result.StartItemNumber = ((requestOptions.Page - 1) * requestOptions.PageSize) + 1; result.EndItemNumber = result.StartItemNumber + requestOptions.PageSize - 1; } if (result.EndItemNumber > calculationsResult.TotalItems) { result.EndItemNumber = calculationsResult.TotalItems; } result.PagerState = new PagerState(requestOptions.Page, calculationsResult.TotalPages, 4); return(result); }
public async Task <ScenarioSearchResultViewModel> PerformSearch(SearchRequestViewModel request) { SearchFilterRequest requestOptions = new SearchFilterRequest() { Page = request.PageNumber.HasValue ? request.PageNumber.Value : 1, PageSize = request.PageSize.HasValue && request.PageSize > 0 ? request.PageSize.Value : PageSize, SearchTerm = request.SearchTerm, IncludeFacets = true, Filters = request.Filters, SearchMode = _featureToggle.IsSearchModeAllEnabled() ? SearchMode.All : SearchMode.Any }; if (request.PageNumber.HasValue && request.PageNumber.Value > 0) { requestOptions.Page = request.PageNumber.Value; } PagedResult <ScenarioSearchResultItem> scenariosResult = await _scenariosApiClient.FindScenarios(requestOptions); if (scenariosResult == null) { _logger.Error("Find Scenarios HTTP request failed"); return(null); } ScenarioSearchResultViewModel results = new ScenarioSearchResultViewModel { TotalResults = scenariosResult.TotalItems, CurrentPage = scenariosResult.PageNumber }; IList <SearchFacetViewModel> searchFacets = new List <SearchFacetViewModel>(); if (scenariosResult.Facets != null) { foreach (SearchFacet facet in scenariosResult.Facets) { searchFacets.Add(_mapper.Map <SearchFacetViewModel>(facet)); } } results.Facets = searchFacets.AsEnumerable(); List <ScenarioSearchResultItemViewModel> itemResults = new List <ScenarioSearchResultItemViewModel>(); foreach (ScenarioSearchResultItem searchResult in scenariosResult.Items) { itemResults.Add(_mapper.Map <ScenarioSearchResultItemViewModel>(searchResult)); } itemResults.OrderBy(f => f.LastUpdatedDate); results.Scenarios = itemResults.AsEnumerable(); if (results.TotalResults == 0) { results.StartItemNumber = 0; results.EndItemNumber = 0; } else { results.StartItemNumber = ((requestOptions.Page - 1) * requestOptions.PageSize) + 1; results.EndItemNumber = results.StartItemNumber + requestOptions.PageSize - 1; } if (results.EndItemNumber > scenariosResult.TotalItems) { results.EndItemNumber = scenariosResult.TotalItems; } results.PagerState = new PagerState(requestOptions.Page, scenariosResult.TotalPages, 4); return(results); }
public async Task <PagedResult <SpecificationSearchResultItem> > FindSpecifications(SearchFilterRequest filterOptions) { SearchQueryRequest request = SearchQueryRequest.FromSearchFilterRequest(filterOptions); ApiResponse <SearchResults <SpecificationSearchResultItem> > results = await PostAsync <SearchResults <SpecificationSearchResultItem>, SearchQueryRequest>("specifications-search", request); if (results.StatusCode == HttpStatusCode.OK) { PagedResult <SpecificationSearchResultItem> result = new SearchPagedResult <SpecificationSearchResultItem>(filterOptions, results.Content.TotalCount) { Items = results.Content.Results, Facets = results.Content.Facets, }; return(result); } else { return(null); } }
public async Task <PagedResult <SpecificationDatasourceRelationshipSearchResultItem> > FindSpecificationAndRelationships(SearchFilterRequest filterOptions) { Guard.ArgumentNotNull(filterOptions, nameof(filterOptions)); SearchQueryRequest request = SearchQueryRequest.FromSearchFilterRequest(filterOptions); ApiResponse <SearchResults <SpecificationDatasourceRelationshipSearchResultItem> > results = await PostAsync <SearchResults <SpecificationDatasourceRelationshipSearchResultItem>, SearchQueryRequest>("specifications-dataset-relationships-search", request); if (results.StatusCode == HttpStatusCode.OK) { PagedResult <SpecificationDatasourceRelationshipSearchResultItem> result = new SearchPagedResult <SpecificationDatasourceRelationshipSearchResultItem>(filterOptions, results.Content.TotalCount) { Items = results.Content.Results }; return(result); } else { return(null); } }