/// <inheritdoc /> public async Task <GetCensusesResponse> GetCensusesAsync( GetCensusesRequest getCensusesRequest, CancellationToken cancellationToken) { var censuses = new Census[getCensusesRequest.CensusIdentifiers.Length]; for (var i = 0; i < censuses.Length; i++) { var singleRequest = new GetCensusRequest { CensusIdentifier = getCensusesRequest.CensusIdentifiers[i], AggregateQueries = getCensusesRequest.AggregateQueries, }; var singleResponse = await GetCensusAsync(singleRequest, cancellationToken); censuses[i] = singleResponse.Census; } return(new GetCensusesResponse { Censuses = censuses, }); }
/// <inheritdoc /> protected override async Task <IActionResult> ProcessWellFormedRequestAsync( GetCensusesHttpRequest request, FunctionRunContext runContext, CancellationToken cancellationToken) { try { var censusRequest = new GetCensusesRequest { CensusIdentifiers = request.Identifiers.Select(ParseIdentifier).ToArray(), AggregateQueries = request.AggregateQueries, }; var response = await this.censusProcessor.GetCensusesAsync( censusRequest, cancellationToken); var jsonSerializerSettings = JsonConvert.DefaultSettings(); return(jsonSerializerSettings == null ? new JsonResult(response.Censuses) : new JsonResult(response.Censuses, jsonSerializerSettings)); } catch (DatasetQueryFileNotFoundException datasetQueryFileNotFoundException) { return(this.GetErrorBody( HttpStatusCode.NotFound, 4, datasetQueryFileNotFoundException)); } catch (IncompleteDatasetQueryFileException incompleteDatasetQueryFileException) { return(this.GetErrorBody( HttpStatusCode.ExpectationFailed, 5, incompleteDatasetQueryFileException)); } catch (TranslationApiAdapterException translationApiAdapterException) { return(this.GetErrorBody( HttpStatusCode.FailedDependency, 6, translationApiAdapterException)); } catch (UnsupportedAggregateColumnRequestException unsupportedAggregateColumnRequestException) { return(this.GetErrorBody( HttpStatusCode.BadRequest, 7, unsupportedAggregateColumnRequestException)); } catch (InvalidMappingTypeException invalidMappingTypeException) { return(this.GetErrorBody( HttpStatusCode.ExpectationFailed, 8, invalidMappingTypeException)); } catch (SqlFieldValueUnboxingTypeException sqlFieldValueUnboxingTypeException) { return(this.GetErrorBody( HttpStatusCode.ExpectationFailed, 9, sqlFieldValueUnboxingTypeException)); } catch (InvalidBetweenValueException invalidBetweenValueException) { return(this.GetErrorBody( HttpStatusCode.BadRequest, 10, invalidBetweenValueException)); } catch (InvalidDateTimeFormatException invalidDateTimeFormatException) { return(this.GetErrorBody( HttpStatusCode.BadRequest, 11, invalidDateTimeFormatException)); } catch (DataFilterValueUnboxingTypeException dataFilterValueUnboxingTypeException) { return(this.GetErrorBody( HttpStatusCode.BadRequest, 12, dataFilterValueUnboxingTypeException)); } catch (UnsupportedSearchParameterException unsupportedSearchParameterException) { return(this.GetErrorBody( HttpStatusCode.BadRequest, 13, unsupportedSearchParameterException)); } }