diff --git a/src/BuildingRegistry.Projections.Integration/Building/Version/BuildingVersion.cs b/src/BuildingRegistry.Projections.Integration/Building/Version/BuildingVersion.cs index d68a38b3f..8f10a1d47 100644 --- a/src/BuildingRegistry.Projections.Integration/Building/Version/BuildingVersion.cs +++ b/src/BuildingRegistry.Projections.Integration/Building/Version/BuildingVersion.cs @@ -19,6 +19,7 @@ public sealed class BuildingVersion public Guid? BuildingId { get; set; } public int BuildingPersistentLocalId { get; set; } public string? Status { get; set; } + public string? OsloStatus { get; set; } public string? GeometryMethod { get; set; } public Geometry? Geometry { get; set; } public string? NisCode { get; set; } @@ -68,6 +69,7 @@ public BuildingVersion CloneAndApplyEventInfo( BuildingId = BuildingId, BuildingPersistentLocalId = BuildingPersistentLocalId, Status = Status, + OsloStatus = OsloStatus, GeometryMethod = GeometryMethod, Geometry = Geometry, NisCode = NisCode, @@ -102,6 +104,7 @@ public void Configure(EntityTypeBuilder builder) builder.Property(x => x.BuildingId).HasColumnName("building_id"); builder.Property(x => x.BuildingPersistentLocalId).HasColumnName("building_persistent_local_id"); builder.Property(x => x.Status).HasColumnName("status"); + builder.Property(x => x.OsloStatus).HasColumnName("oslo_status"); builder.Property(x => x.GeometryMethod).HasColumnName("geometry_method"); builder.Property(x => x.Geometry).HasColumnName("geometry"); builder.Property(x => x.NisCode).HasColumnName("nis_code"); @@ -118,6 +121,7 @@ public void Configure(EntityTypeBuilder builder) builder.HasIndex(x => x.BuildingPersistentLocalId); builder.HasIndex(x => x.Status); + builder.HasIndex(x => x.OsloStatus); builder.HasIndex(x => x.IsRemoved); builder.HasIndex(x => x.NisCode); builder.HasIndex(x => x.Geometry).HasMethod("GIST"); diff --git a/src/BuildingRegistry.Projections.Integration/Building/Version/BuildingVersionProjections-LegacyEvents.cs b/src/BuildingRegistry.Projections.Integration/Building/Version/BuildingVersionProjections-LegacyEvents.cs index 2f2ef061b..35b0573b7 100644 --- a/src/BuildingRegistry.Projections.Integration/Building/Version/BuildingVersionProjections-LegacyEvents.cs +++ b/src/BuildingRegistry.Projections.Integration/Building/Version/BuildingVersionProjections-LegacyEvents.cs @@ -96,7 +96,8 @@ await context.CreateNewBuildingVersion( message, building => { - building.Status = BuildingStatus.UnderConstruction.Map(); + building.Status = BuildingStatus.UnderConstruction.Value; + building.OsloStatus = BuildingStatus.UnderConstruction.Map(); }, ct); }); @@ -108,7 +109,8 @@ await context.CreateNewBuildingVersion( message, building => { - building.Status = BuildingStatus.NotRealized.Map(); + building.Status = BuildingStatus.NotRealized.Value; + building.OsloStatus = BuildingStatus.NotRealized.Map(); }, ct); }); @@ -120,7 +122,8 @@ await context.CreateNewBuildingVersion( message, building => { - building.Status = BuildingStatus.Planned.Map(); + building.Status = BuildingStatus.Planned.Value; + building.OsloStatus = BuildingStatus.Planned.Map(); }, ct); }); @@ -132,7 +135,8 @@ await context.CreateNewBuildingVersion( message, building => { - building.Status = BuildingStatus.Realized.Map(); + building.Status = BuildingStatus.Realized.Value; + building.OsloStatus = BuildingStatus.Realized.Map(); }, ct); }); @@ -144,7 +148,8 @@ await context.CreateNewBuildingVersion( message, building => { - building.Status = BuildingStatus.Retired.Map(); + building.Status = BuildingStatus.Retired.Value; + building.OsloStatus = BuildingStatus.Retired.Map(); }, ct); }); @@ -156,7 +161,8 @@ await context.CreateNewBuildingVersion( message, building => { - building.Status = BuildingStatus.NotRealized.Map(); + building.Status = BuildingStatus.NotRealized.Value; + building.OsloStatus = BuildingStatus.NotRealized.Map(); }, ct); }); @@ -168,7 +174,8 @@ await context.CreateNewBuildingVersion( message, building => { - building.Status = BuildingStatus.Planned.Map(); + building.Status = BuildingStatus.Planned.Value; + building.OsloStatus = BuildingStatus.Planned.Map(); }, ct); }); @@ -180,7 +187,8 @@ await context.CreateNewBuildingVersion( message, building => { - building.Status = BuildingStatus.Retired.Map(); + building.Status = BuildingStatus.Retired.Value; + building.OsloStatus = BuildingStatus.Retired.Map(); }, ct); }); @@ -192,7 +200,8 @@ await context.CreateNewBuildingVersion( message, building => { - building.Status = BuildingStatus.Realized.Map(); + building.Status = BuildingStatus.Realized.Value; + building.OsloStatus = BuildingStatus.Realized.Map(); }, ct); }); @@ -204,7 +213,8 @@ await context.CreateNewBuildingVersion( message, building => { - building.Status = BuildingStatus.UnderConstruction.Map(); + building.Status = BuildingStatus.UnderConstruction.Value; + building.OsloStatus = BuildingStatus.UnderConstruction.Map(); }, ct); }); @@ -217,6 +227,7 @@ await context.CreateNewBuildingVersion( building => { building.Status = null; + building.OsloStatus = null; }, ct); }); @@ -229,6 +240,7 @@ await context.CreateNewBuildingVersion( building => { building.Status = null; + building.OsloStatus = null; }, ct); }); diff --git a/src/BuildingRegistry.Projections.Integration/Building/Version/BuildingVersionProjections.cs b/src/BuildingRegistry.Projections.Integration/Building/Version/BuildingVersionProjections.cs index cdc7c99b4..d3ba2721e 100644 --- a/src/BuildingRegistry.Projections.Integration/Building/Version/BuildingVersionProjections.cs +++ b/src/BuildingRegistry.Projections.Integration/Building/Version/BuildingVersionProjections.cs @@ -34,7 +34,8 @@ await context.CreateNewBuildingVersion( building => { building.BuildingPersistentLocalId = message.Message.BuildingPersistentLocalId; - building.Status = BuildingStatus.Parse(message.Message.BuildingStatus).Map(); + building.Status = BuildingStatus.Parse(message.Message.BuildingStatus).Value; + building.OsloStatus = BuildingStatus.Parse(message.Message.BuildingStatus).Map(); building.GeometryMethod = BuildingGeometryMethod.Parse(message.Message.GeometryMethod).Map(); building.Geometry = sysGeometry; building.NisCode = nisCode; @@ -58,7 +59,8 @@ await context.CreateNewBuildingVersion( { Position = message.Position, BuildingPersistentLocalId = message.Message.BuildingPersistentLocalId, - Status = BuildingStatus.Planned.Map(), + Status = BuildingStatus.Planned.Value, + OsloStatus = BuildingStatus.Planned.Map(), GeometryMethod = BuildingGeometryMethod.Outlined.Map(), Geometry = sysGeometry, NisCode = nisCode, @@ -85,7 +87,8 @@ await context { Position = message.Position, BuildingPersistentLocalId = message.Message.BuildingPersistentLocalId, - Status = BuildingStatus.Realized.Map(), + Status = BuildingStatus.Realized.Value, + OsloStatus = BuildingStatus.Realized.Map(), GeometryMethod = BuildingGeometryMethod.MeasuredByGrb.Map(), Geometry = sysGeometry, NisCode = nisCode, @@ -144,7 +147,11 @@ await context.CreateNewBuildingVersion( await context.CreateNewBuildingVersion( message.Message.BuildingPersistentLocalId, message, - building => { building.Status = BuildingStatus.UnderConstruction.Map(); }, + building => + { + building.Status = BuildingStatus.UnderConstruction.Value; + building.OsloStatus = BuildingStatus.UnderConstruction.Map(); + }, ct); }); @@ -153,7 +160,11 @@ await context.CreateNewBuildingVersion( await context.CreateNewBuildingVersion( message.Message.BuildingPersistentLocalId, message, - building => { building.Status = BuildingStatus.Planned.Map(); }, + building => + { + building.Status = BuildingStatus.Planned.Value; + building.OsloStatus = BuildingStatus.Planned.Map(); + }, ct); }); @@ -162,7 +173,11 @@ await context.CreateNewBuildingVersion( await context.CreateNewBuildingVersion( message.Message.BuildingPersistentLocalId, message, - building => { building.Status = BuildingStatus.Realized.Map(); }, + building => + { + building.Status = BuildingStatus.Realized.Value; + building.OsloStatus = BuildingStatus.Realized.Map(); + }, ct); }); @@ -171,7 +186,11 @@ await context.CreateNewBuildingVersion( await context.CreateNewBuildingVersion( message.Message.BuildingPersistentLocalId, message, - building => { building.Status = BuildingStatus.UnderConstruction.Map(); }, + building => + { + building.Status = BuildingStatus.UnderConstruction.Value; + building.OsloStatus = BuildingStatus.UnderConstruction.Map(); + }, ct); }); @@ -180,7 +199,11 @@ await context.CreateNewBuildingVersion( await context.CreateNewBuildingVersion( message.Message.BuildingPersistentLocalId, message, - building => { building.Status = BuildingStatus.NotRealized.Map(); }, + building => + { + building.Status = BuildingStatus.NotRealized.Value; + building.OsloStatus = BuildingStatus.NotRealized.Map(); + }, ct); }); @@ -189,7 +212,11 @@ await context.CreateNewBuildingVersion( await context.CreateNewBuildingVersion( message.Message.BuildingPersistentLocalId, message, - building => { building.Status = BuildingStatus.Planned.Map(); }, + building => + { + building.Status = BuildingStatus.Planned.Value; + building.OsloStatus = BuildingStatus.Planned.Map(); + }, ct); }); @@ -236,7 +263,11 @@ await context.CreateNewBuildingVersion( await context.CreateNewBuildingVersion( message.Message.BuildingPersistentLocalId, message, - building => { building.Status = BuildingStatus.Retired.Map(); }, + building => + { + building.Status = BuildingStatus.Retired.Value; + building.OsloStatus = BuildingStatus.Retired.Map(); + }, ct); }); @@ -296,7 +327,8 @@ await context.CreateNewBuildingVersion( { Position = message.Position, BuildingPersistentLocalId = message.Message.BuildingPersistentLocalId, - Status = BuildingStatus.Realized.Map(), + Status = BuildingStatus.Realized.Value, + OsloStatus = BuildingStatus.Realized.Map(), GeometryMethod = BuildingGeometryMethod.MeasuredByGrb.Map(), Geometry = sysGeometry, NisCode = nisCode, @@ -335,7 +367,11 @@ await context.CreateNewBuildingVersion( await context.CreateNewBuildingVersion( message.Message.BuildingPersistentLocalId, message, - building => { building.Status = BuildingStatus.Retired.Map(); }, + building => + { + building.Status = BuildingStatus.Retired.Value; + building.OsloStatus = BuildingStatus.Retired.Map(); + }, ct); }); } diff --git a/test/BuildingRegistry.Tests/ProjectionTests/Integration/BuildingVersionProjectionsTests.cs b/test/BuildingRegistry.Tests/ProjectionTests/Integration/BuildingVersionProjectionsTests.cs index 735ab5696..4d189aca7 100644 --- a/test/BuildingRegistry.Tests/ProjectionTests/Integration/BuildingVersionProjectionsTests.cs +++ b/test/BuildingRegistry.Tests/ProjectionTests/Integration/BuildingVersionProjectionsTests.cs @@ -63,7 +63,8 @@ await Sut var buildingVersion = await ct.BuildingVersions.FindAsync(position); buildingVersion.Should().NotBeNull(); - buildingVersion!.Status.Should().Be(BuildingStatus.Planned.Map()); + buildingVersion!.Status.Should().Be(BuildingStatus.Planned.Value); + buildingVersion.OsloStatus.Should().Be(BuildingStatus.Planned.Map()); buildingVersion.Geometry.Should().BeEquivalentTo(_wkbReader.Read(buildingWasPlannedV2.ExtendedWkbGeometry.ToByteArray())); buildingVersion.GeometryMethod.Should().Be(BuildingGeometryMethod.Outlined.Map()); buildingVersion.IsRemoved.Should().BeFalse(); @@ -93,7 +94,8 @@ await Sut var buildingVersion = await ct.BuildingVersions.FindAsync(position); buildingVersion.Should().NotBeNull(); - buildingVersion!.Status.Should().Be(BuildingStatus.Realized.Map()); + buildingVersion!.Status.Should().Be(BuildingStatus.Realized.Value); + buildingVersion.OsloStatus.Should().Be(BuildingStatus.Realized.Map()); buildingVersion.GeometryMethod.Should().Be(BuildingGeometryMethod.MeasuredByGrb.Map()); buildingVersion.Geometry.Should() .BeEquivalentTo(_wkbReader.Read(unplannedBuildingWasRealizedAndMeasured.ExtendedWkbGeometry.ToByteArray())); @@ -355,7 +357,8 @@ await Sut var buildingVersion = await ct.BuildingVersions.FindAsync(position + 1); buildingVersion.Should().NotBeNull(); - buildingVersion!.Status.Should().Be(BuildingStatus.UnderConstruction.Map()); + buildingVersion!.Status.Should().Be(BuildingStatus.UnderConstruction.Value); + buildingVersion.OsloStatus.Should().Be(BuildingStatus.UnderConstruction.Map()); buildingVersion.VersionTimestamp.Should().Be(buildingBecameUnderConstructionV2.Provenance.Timestamp); }); } @@ -390,7 +393,8 @@ await Sut var buildingVersion = await ct.BuildingVersions.FindAsync(position + 1); buildingVersion.Should().NotBeNull(); - buildingVersion!.Status.Should().Be(BuildingStatus.Planned.Map()); + buildingVersion!.Status.Should().Be(BuildingStatus.Planned.Value); + buildingVersion.OsloStatus.Should().Be(BuildingStatus.Planned.Map()); buildingVersion.VersionTimestamp.Should().Be(buildingWasCorrectedFromUnderConstructionToPlanned.Provenance.Timestamp); }); } @@ -424,7 +428,8 @@ await Sut var buildingVersion = await ct.BuildingVersions.FindAsync(position + 1); buildingVersion.Should().NotBeNull(); - buildingVersion!.Status.Should().Be(BuildingStatus.Realized.Map()); + buildingVersion!.Status.Should().Be(BuildingStatus.Realized.Value); + buildingVersion.OsloStatus.Should().Be(BuildingStatus.Realized.Map()); buildingVersion.VersionTimestamp.Should().Be(buildingWasRealizedV2.Provenance.Timestamp); }); } @@ -473,7 +478,8 @@ await Sut var buildingVersion = await ct.BuildingVersions.FindAsync(position + 2); buildingVersion.Should().NotBeNull(); - buildingVersion!.Status.Should().Be(BuildingStatus.UnderConstruction.Map()); + buildingVersion!.Status.Should().Be(BuildingStatus.UnderConstruction.Value); + buildingVersion.OsloStatus.Should().Be(BuildingStatus.UnderConstruction.Map()); buildingVersion.VersionTimestamp.Should().Be(buildingWasCorrectedFromRealizedToUnderConstruction.Provenance.Timestamp); }); } @@ -504,7 +510,8 @@ await Sut var buildingVersion = await ct.BuildingVersions.FindAsync(position + 1); buildingVersion.Should().NotBeNull(); - buildingVersion!.Status.Should().Be(BuildingStatus.NotRealized.Map()); + buildingVersion!.Status.Should().Be(BuildingStatus.NotRealized.Value); + buildingVersion.OsloStatus.Should().Be(BuildingStatus.NotRealized.Map()); buildingVersion.VersionTimestamp.Should().Be(buildingWasNotRealizedV2.Provenance.Timestamp); }); } @@ -545,7 +552,8 @@ await Sut var buildingVersion = await ct.BuildingVersions.FindAsync(position + 2); buildingVersion.Should().NotBeNull(); - buildingVersion!.Status.Should().Be(BuildingStatus.Planned.Map()); + buildingVersion!.Status.Should().Be(BuildingStatus.Planned.Value); + buildingVersion.OsloStatus.Should().Be(BuildingStatus.Planned.Map()); buildingVersion.VersionTimestamp.Should().Be(buildingWasCorrectedFromNotRealizedToPlanned.Provenance.Timestamp); }); } @@ -712,7 +720,8 @@ await Sut var buildingVersion = await ct.BuildingVersions.FindAsync(position + 1); buildingVersion.Should().NotBeNull(); - buildingVersion!.Status.Should().Be(BuildingStatus.Retired.Map()); + buildingVersion!.Status.Should().Be(BuildingStatus.Retired.Value); + buildingVersion.OsloStatus.Should().Be(BuildingStatus.Retired.Map()); buildingVersion.VersionTimestamp.Should().Be(buildingWasDemolished.Provenance.Timestamp); }); } @@ -742,7 +751,8 @@ await Sut buildingVersion.Should().NotBeNull(); buildingVersion!.BuildingPersistentLocalId.Should().Be(buildingMergerWasRealized.BuildingPersistentLocalId); - buildingVersion.Status.Should().Be(BuildingStatus.Realized.Map()); + buildingVersion.Status.Should().Be(BuildingStatus.Realized.Value); + buildingVersion.OsloStatus.Should().Be(BuildingStatus.Realized.Map()); buildingVersion.Geometry.Should().BeEquivalentTo(_wkbReader.Read(buildingMergerWasRealized.ExtendedWkbGeometry.ToByteArray())); buildingVersion.GeometryMethod.Should().Be(BuildingGeometryMethod.MeasuredByGrb.Map()); buildingVersion.VersionTimestamp.Should().Be(buildingMergerWasRealized.Provenance.Timestamp); @@ -826,7 +836,8 @@ await Sut var buildingVersion = await ct.BuildingVersions.FindAsync(position + 1); buildingVersion.Should().NotBeNull(); - buildingVersion!.Status.Should().Be(BuildingStatus.Retired.Map()); + buildingVersion!.Status.Should().Be(BuildingStatus.Retired.Value); + buildingVersion.OsloStatus.Should().Be(BuildingStatus.Retired.Map()); buildingVersion.VersionTimestamp.Should().Be(buildingWasMerged.Provenance.Timestamp); }); }