private static void UpdateNameByLanguage(StreetNameNameV2 entity, List <StreetNameName> streetNameNames) { foreach (var streetNameName in streetNameNames) { switch (streetNameName.Language) { case Language.Dutch: entity.NameDutch = streetNameName.Name; entity.NameDutchSearch = streetNameName.Name.SanitizeForBosaSearch(); break; case Language.French: entity.NameFrench = streetNameName.Name; entity.NameFrenchSearch = streetNameName.Name.SanitizeForBosaSearch(); break; case Language.German: entity.NameGerman = streetNameName.Name; entity.NameGermanSearch = streetNameName.Name.SanitizeForBosaSearch(); break; case Language.English: entity.NameEnglish = streetNameName.Name; entity.NameEnglishSearch = streetNameName.Name.SanitizeForBosaSearch(); break; } } }
public StreetNameNameProjectionsV2() { When <Envelope <StreetNameWasProposedV2> >(async(context, message, ct) => { var streetNameNameV2 = new StreetNameNameV2 { PersistentLocalId = message.Message.PersistentLocalId, MunicipalityId = message.Message.MunicipalityId, NisCode = message.Message.NisCode, VersionTimestamp = message.Message.Provenance.Timestamp, IsFlemishRegion = RegionFilter.IsFlemishRegion(message.Message.NisCode), Status = StreetNameStatus.Proposed, Removed = false }; UpdateNameByLanguage(streetNameNameV2, message.Message.StreetNameNames); await context .StreetNameNamesV2 .AddAsync(streetNameNameV2, ct); }); When <Envelope <MunicipalityNisCodeWasChanged> >(async(context, message, ct) => { var streetNames = context .StreetNameNamesV2 .Local .Where(s => s.MunicipalityId == message.Message.MunicipalityId) .Union(context.StreetNameNamesV2.Where(s => s.MunicipalityId == message.Message.MunicipalityId)); foreach (var streetName in streetNames) { streetName.NisCode = message.Message.NisCode; } }); }
private static void UpdateVersionTimestamp(StreetNameNameV2 streetNameName, Instant versionTimestamp) => streetNameName.VersionTimestamp = versionTimestamp;