public async Task Should_SearchProviderResultsForCalculation_ValidViewModel_Success() { CalculationProviderSearchRequestViewModel data = Builder <CalculationProviderSearchRequestViewModel> .CreateNew().With(x => x.CalculationValueType = "Number").Build(); IActionResult actual = await _sut.SearchProviderResultsForCalculation(data); actual.Should().BeOfType <OkObjectResult>(); }
public async Task <IActionResult> SearchProviderResultsForCalculation([FromBody] CalculationProviderSearchRequestViewModel viewModel) { Guard.ArgumentNotNull(viewModel, nameof(viewModel)); SearchRequestViewModel request = new SearchRequestViewModel { Filters = new Dictionary <string, string[]>(), FacetCount = viewModel.FacetCount, IncludeFacets = viewModel.IncludeFacets, PageNumber = viewModel.PageNumber, PageSize = viewModel.PageSize, SearchMode = viewModel.SearchMode, SearchFields = viewModel.SearchFields }; if (!string.IsNullOrEmpty(viewModel.SearchTerm)) { request.SearchTerm = viewModel.SearchTerm; } if (!string.IsNullOrEmpty(viewModel.ErrorToggle)) { request.ErrorToggle = "Errors"; } if (viewModel.ProviderType != null && viewModel.ProviderType.Any()) { request.Filters.Add("providerType", viewModel.ProviderType); } if (viewModel.ProviderSubType != null && viewModel.ProviderSubType.Any()) { request.Filters.Add("providerSubType", viewModel.ProviderSubType); } if (viewModel.ResultsStatus != null && viewModel.ResultsStatus.Any()) { request.Filters.Add("resultsStatus", viewModel.ResultsStatus); } if (viewModel.ResultsStatus != null && viewModel.LocalAuthority.Any()) { request.Filters.Add("localAuthority", viewModel.LocalAuthority); } if (!string.IsNullOrEmpty(viewModel.CalculationId)) { request.Filters.Add("calculationId", new[] { viewModel.CalculationId }); } CalculationProviderResultSearchResultViewModel searchResults = await _calculationProviderResultsSearchService.PerformSearch(request); CalculationProviderResultSearchResultViewModel result = searchResults; if (result != null) { return(Ok(result)); } return(new InternalServerErrorResult($"Find provider results HTTP request failed")); }