private static void UpdateNameByLanguage(StreetNameListItemV2 entity, List <StreetNameName> streetNameNames) { foreach (var streetNameName in streetNameNames) { switch (streetNameName.Language) { case Language.Dutch: entity.NameDutch = streetNameName.Name; entity.NameDutchSearch = streetNameName.Name.RemoveDiacritics(); break; case Language.French: entity.NameFrench = streetNameName.Name; entity.NameFrenchSearch = streetNameName.Name.RemoveDiacritics(); break; case Language.German: entity.NameGerman = streetNameName.Name; entity.NameGermanSearch = streetNameName.Name.RemoveDiacritics(); break; case Language.English: entity.NameEnglish = streetNameName.Name; entity.NameEnglishSearch = streetNameName.Name.RemoveDiacritics(); break; } } }
public StreetNameListProjectionsV2() { When <Envelope <StreetNameWasProposedV2> >(async(context, message, ct) => { var municipality = await context.StreetNameListMunicipality.FindAsync(message.Message.MunicipalityId, cancellationToken: ct); var streetNameListItemV2 = new StreetNameListItemV2 { PersistentLocalId = message.Message.PersistentLocalId, MunicipalityId = message.Message.MunicipalityId, NisCode = message.Message.NisCode, VersionTimestamp = message.Message.Provenance.Timestamp, Removed = false, PrimaryLanguage = municipality.PrimaryLanguage, Status = StreetNameStatus.Proposed }; UpdateNameByLanguage(streetNameListItemV2, message.Message.StreetNameNames); await context .StreetNameListV2 .AddAsync(streetNameListItemV2, ct); }); When <Envelope <MunicipalityWasImported> >(async(context, message, ct) => { var streetNameListMunicipality = new StreetNameListMunicipality { MunicipalityId = message.Message.MunicipalityId, NisCode = message.Message.NisCode }; await context .StreetNameListMunicipality .AddAsync(streetNameListMunicipality, ct); }); When <Envelope <MunicipalityNisCodeWasChanged> >(async(context, message, ct) => { var municipality = await context.StreetNameListMunicipality.FindAsync(message.Message.MunicipalityId, cancellationToken: ct); municipality.NisCode = message.Message.NisCode; var streetNames = context .StreetNameListV2 .Local .Where(s => s.MunicipalityId == message.Message.MunicipalityId) .Union(context.StreetNameListV2.Where(s => s.MunicipalityId == message.Message.MunicipalityId)); foreach (var streetName in streetNames) { streetName.NisCode = message.Message.NisCode; } }); }