public async Task <IActionResult> GetProviderResults(string providerId, string specificationId) { if (string.IsNullOrWhiteSpace(providerId)) { _logger.Error("No provider Id was provided to GetProviderResults"); return(new BadRequestObjectResult("Null or empty provider Id provided")); } if (string.IsNullOrWhiteSpace(specificationId)) { _logger.Error("No specification Id was provided to GetProviderResults"); return(new BadRequestObjectResult("Null or empty specification Id provided")); } ProviderResult providerResult = await _resultsRepositoryPolicy.ExecuteAsync(() => _resultsRepository.GetProviderResult(providerId, specificationId)); if (providerResult != null) { _logger.Information($"A result was found for provider id {providerId}, specification id {specificationId}"); ApiModels.ApiResponse <IEnumerable <CalcModels.CalculationMetadata> > calculationsResponse = await _calculationsApiClientPolicy.ExecuteAsync(() => _calculationsApiClient.GetCalculationMetadataForSpecification(specificationId)); if (calculationsResponse?.Content == null) { string error = $"Did not locate any calculation metadata for specification {specificationId}."; _logger.Error(error); return(new BadRequestObjectResult(error)); } IDictionary <string, CalcModels.CalculationMetadata> calculations = calculationsResponse.Content.ToDictionary(_ => _.CalculationId); ProviderResultResponse providerResultResponse = _mapper.Map <ProviderResultResponse>(providerResult); foreach (CalculationResultResponse calculationResult in providerResultResponse.CalculationResults) { calculationResult.CalculationValueType = _mapper.Map <CalculationValueType>(calculations[calculationResult.Calculation.Id].ValueType); } return(new OkObjectResult(providerResultResponse)); } _logger.Information($"A result was not found for provider id {providerId}, specification id {specificationId}"); return(new NotFoundResult()); }
public async Task <IActionResult> GetProviderResults(HttpRequest request) { string providerId = request.GetParameter("providerId"); string specificationId = request.GetParameter("specificationId"); if (string.IsNullOrWhiteSpace(providerId)) { _logger.Error("No provider Id was provided to GetProviderResults"); return(new BadRequestObjectResult("Null or empty provider Id provided")); } if (string.IsNullOrWhiteSpace(specificationId)) { _logger.Error("No specification Id was provided to GetProviderResults"); return(new BadRequestObjectResult("Null or empty specification Id provided")); } ProviderResult providerResult = await _resultsRepositoryPolicy.ExecuteAsync(() => _resultsRepository.GetProviderResult(providerId, specificationId)); if (providerResult != null) { _logger.Information($"A result was found for provider id {providerId}, specification id {specificationId}"); return(new OkObjectResult(providerResult)); } _logger.Information($"A result was not found for provider id {providerId}, specification id {specificationId}"); return(new NotFoundResult()); }