public async Task <IActionResult> Post( [FromServices] LegacyContext context, [FromServices] IOptions <ResponseOptions> reponseOptions, [FromBody] BosaMunicipalityRequest request, CancellationToken cancellationToken = default) { if (Request.ContentLength.HasValue && Request.ContentLength > 0 && request == null) { return(Ok(new MunicipalityBosaResponse())); } var filtering = new MunicipalityBosaFilter(request); var sorting = new SortingHeader(string.Empty, SortOrder.Ascending); var pagination = new PaginationRequest(0, 1000); var filteredMunicipalities = new MunicipalityBosaQuery(context).Fetch( new FilteringHeader <MunicipalityBosaFilter>(filtering), sorting, pagination); return(Ok( new MunicipalityBosaResponse { Gemeenten = await filteredMunicipalities .Items .Select(m => new MunicipalityBosaItemResponse( m.NisCode, reponseOptions.Value.Naamruimte, m.Version, GetGemeentenamenByLanguage(m, filtering.Language))) .ToListAsync(cancellationToken), })); }
public MunicipalityBosaFilter(BosaMunicipalityRequest request) { NisCode = request?.GemeenteCode?.ObjectId; Version = request?.GemeenteCode?.VersieId; Name = request?.Gemeentenaam?.Spelling; Language = (Language?)request?.Gemeentenaam?.Taal; IsContainsFilter = (request?.Gemeentenaam?.SearchType ?? BosaSearchType.Bevat) == BosaSearchType.Bevat; }
public async Task <IActionResult> SearchBestAddMunicipality( [FromServices] IActionContextAccessor actionContextAccessor, [FromServices] IOptions <MunicipalityOptions> responseOptions, [FromHeader(Name = HeaderNames.IfNoneMatch)] string ifNoneMatch, [FromBody] BosaMunicipalityRequest searchBody, CancellationToken cancellationToken = default) => await SearchBestAddMunicipalityWithFormat( null, actionContextAccessor, responseOptions, ifNoneMatch, searchBody, cancellationToken);
public async Task <IActionResult> SearchBestAddMunicipality( [FromServices] IActionContextAccessor actionContextAccessor, [FromServices] IOptions <MunicipalityOptions> responseOptions, [FromHeader(Name = HeaderNames.IfNoneMatch)] string ifNoneMatch, [FromBody] BosaMunicipalityRequest searchBody, CancellationToken cancellationToken = default) { var contentFormat = DetermineFormat(actionContextAccessor.ActionContext); IRestRequest BackendRequest() => CreateBackendSearchBestAddRequest(searchBody); var value = await GetFromBackendAsync( contentFormat.ContentType, BackendRequest, CreateDefaultHandleBadRequest(), cancellationToken); return(BackendListResponseResult.Create(value, Request.Query, responseOptions.Value.VolgendeUrl)); }
private static IRestRequest CreateBackendSearchBestAddRequest(BosaMunicipalityRequest searchBody) => new RestRequest("gemeenten/bosa", Method.POST).AddJsonBodyOrEmpty(searchBody);