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>();
        }
Exemplo n.º 2
0
        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"));
        }