public async Task <IActionResult> Get( [FromServices] LegacyContext legacyContext, [FromServices] IOptions <ResponseOptions> responseOptions, [FromRoute] int persistentLocalId, [FromRoute] DateTimeOffset versie, CancellationToken cancellationToken = default) { var streetName = await legacyContext .StreetNameVersions .AsNoTracking() .Where(x => !x.Removed) .SingleOrDefaultAsync(item => item.PersistentLocalId == persistentLocalId && item.VersionTimestampAsDateTimeOffset == versie, cancellationToken); if (streetName != null && streetName.Removed) { throw new ApiException("Straatnaam verwijderd.", StatusCodes.Status410Gone); } if (streetName == null || !streetName.Complete) { throw new ApiException("Onbestaande straatnaam.", StatusCodes.Status404NotFound); } var gemeente = new StraatnaamDetailGemeente { ObjectId = streetName.NisCode, Detail = string.Format(responseOptions.Value.GemeenteDetailUrl, streetName.NisCode), // TODO: get the name for this nisCode's municipality. // Not feasible yet, at least not yet without calling the Municipality Api. Gemeentenaam = new Gemeentenaam(new GeografischeNaam(null, Taal.NL)) }; return(Ok( new StreetNameResponse( responseOptions.Value.Naamruimte, persistentLocalId, streetName.Status.ConvertFromStreetNameStatus(), gemeente, streetName.VersionTimestampAsDateTimeOffset.Value, streetName.NameDutch, streetName.NameFrench, streetName.NameGerman, streetName.NameEnglish, streetName.HomonymAdditionDutch, streetName.HomonymAdditionFrench, streetName.HomonymAdditionGerman, streetName.HomonymAdditionEnglish))); }
public async Task <StreetNameResponse> FilterAsync(int persistentLocalId, CancellationToken ct = default) { var streetName = await _legacyContext .StreetNameDetail .AsNoTracking() .SingleOrDefaultAsync(item => item.PersistentLocalId == persistentLocalId, ct); if (streetName == null) { throw new ApiException("Onbestaande straatnaam.", StatusCodes.Status404NotFound); } if (streetName.Removed) { throw new ApiException("Straatnaam verwijderd.", StatusCodes.Status410Gone); } var municipality = await _syndicationContext .MunicipalityLatestItems .AsNoTracking() .OrderByDescending(m => m.Position) .FirstOrDefaultAsync(m => m.NisCode == streetName.NisCode, ct); var municipalityDefaultName = GetDefaultMunicipalityName(municipality); var gemeente = new StraatnaamDetailGemeente { ObjectId = streetName.NisCode, Detail = string.Format(_responseOptions.GemeenteDetailUrl, streetName.NisCode), Gemeentenaam = new Gemeentenaam(new GeografischeNaam(municipalityDefaultName.Value, municipalityDefaultName.Key)) }; return(new StreetNameResponse( _responseOptions.Naamruimte, streetName.PersistentLocalId.Value, streetName.Status.ConvertFromStreetNameStatus(), gemeente, streetName.VersionTimestamp.ToBelgianDateTimeOffset(), streetName.NameDutch, streetName.NameFrench, streetName.NameGerman, streetName.NameEnglish, streetName.HomonymAdditionDutch, streetName.HomonymAdditionFrench, streetName.HomonymAdditionGerman, streetName.HomonymAdditionEnglish)); }
private async Task <StraatnaamDetailGemeente> GetStraatnaamDetailGemeente(string nisCode, CancellationToken ct) { var municipality = await _syndicationContext .MunicipalityLatestItems .AsNoTracking() .OrderByDescending(m => m.Position) .FirstOrDefaultAsync(m => m.NisCode == nisCode, ct); var municipalityDefaultName = GetDefaultMunicipalityName(municipality); var gemeente = new StraatnaamDetailGemeente { ObjectId = nisCode, Detail = string.Format(_responseOptions.GemeenteDetailUrl, nisCode), Gemeentenaam = new Gemeentenaam(new GeografischeNaam(municipalityDefaultName.Value, municipalityDefaultName.Key)) }; return(gemeente); }
public StreetNameOsloResponse( string naamruimte, string contextUrlDetail, int persistentLocalId, StraatnaamStatus status, StraatnaamDetailGemeente gemeente, DateTimeOffset version, string nameDutch = "", string nameFrench = "", string nameGerman = "", string nameEnglish = "", string homonymAdditionDutch = "", string homonymAdditionFrench = "", string homonymAdditionGerman = "", string homonymAdditionEnglish = "") { Context = contextUrlDetail; Identificator = new StraatnaamIdentificator(naamruimte, persistentLocalId.ToString(), version); StraatnaamStatus = status; Gemeente = gemeente; var straatNamen = new List <GeografischeNaam> { new GeografischeNaam(nameDutch, Taal.NL), new GeografischeNaam(nameFrench, Taal.FR), new GeografischeNaam(nameGerman, Taal.DE), new GeografischeNaam(nameEnglish, Taal.EN) }; Straatnamen = straatNamen.Where(x => !string.IsNullOrEmpty(x.Spelling)).ToList(); var homoniemen = new List <GeografischeNaam> { new GeografischeNaam(homonymAdditionDutch, Taal.NL), new GeografischeNaam(homonymAdditionFrench, Taal.FR), new GeografischeNaam(homonymAdditionGerman, Taal.DE), new GeografischeNaam(homonymAdditionEnglish, Taal.EN) }; HomoniemToevoegingen = homoniemen.Where(x => !string.IsNullOrEmpty(x.Spelling)).ToList(); }