Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Application.Ringtoets.Storage.csproj =================================================================== diff -u -r2ffc105f58b79a021bb0867446237d7d4903d467 -r308f45aac80baf6744776a04e10e3cbaf8c39198 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Application.Ringtoets.Storage.csproj (.../Application.Ringtoets.Storage.csproj) (revision 2ffc105f58b79a021bb0867446237d7d4903d467) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Application.Ringtoets.Storage.csproj (.../Application.Ringtoets.Storage.csproj) (revision 308f45aac80baf6744776a04e10e3cbaf8c39198) @@ -72,7 +72,6 @@ - Fisheye: Tag 308f45aac80baf6744776a04e10e3cbaf8c39198 refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets.Storage/Create/HeightStructures/GeneralHeightStructuresInputCreateExtensions.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/HeightStructures/HeightStructuresFailureMechanismCreateExtensions.cs =================================================================== diff -u -r20e9bfea15dfe132ee137283a9f24bc4c413ce4a -r308f45aac80baf6744776a04e10e3cbaf8c39198 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/HeightStructures/HeightStructuresFailureMechanismCreateExtensions.cs (.../HeightStructuresFailureMechanismCreateExtensions.cs) (revision 20e9bfea15dfe132ee137283a9f24bc4c413ce4a) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/HeightStructures/HeightStructuresFailureMechanismCreateExtensions.cs (.../HeightStructuresFailureMechanismCreateExtensions.cs) (revision 308f45aac80baf6744776a04e10e3cbaf8c39198) @@ -22,6 +22,7 @@ using System; using System.Collections.Generic; using Application.Ringtoets.Storage.DbContext; +using Core.Common.Utils.Extensions; using Ringtoets.Common.Data; using Ringtoets.Common.Data.DikeProfiles; using Ringtoets.HeightStructures.Data; @@ -45,7 +46,7 @@ FailureMechanismEntity entity = mechanism.Create(FailureMechanismType.StructureHeight, registry); AddEntitiesForForeshoreProfiles(mechanism.ForeshoreProfiles, entity, registry); AddEntitiesForHeightStructures(mechanism.HeightStructures, entity, registry); - AddEntitiesForFailureMechanismMeta(mechanism.GeneralInput, entity); + AddEntitiesForFailureMechanismMeta(mechanism, entity); entity.CalculationGroupEntity = mechanism.CalculationsGroup.Create(registry, 0); AddEntitiesForSectionResults(mechanism.SectionResults, registry); @@ -88,9 +89,13 @@ } } - private static void AddEntitiesForFailureMechanismMeta(GeneralHeightStructuresInput generalInput, FailureMechanismEntity entity) + private static void AddEntitiesForFailureMechanismMeta(HeightStructuresFailureMechanism mechanism, FailureMechanismEntity entity) { - entity.HeightStructuresFailureMechanismMetaEntities.Add(generalInput.Create()); + entity.HeightStructuresFailureMechanismMetaEntities.Add(new HeightStructuresFailureMechanismMetaEntity + { + N = mechanism.GeneralInput.N, + HeightStructureCollectionSourcePath = mechanism.HeightStructures.SourcePath.DeepClone() + }); } } } \ No newline at end of file Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs =================================================================== diff -u -r20e9bfea15dfe132ee137283a9f24bc4c413ce4a -r308f45aac80baf6744776a04e10e3cbaf8c39198 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs (.../FailureMechanismEntityReadExtensions.cs) (revision 20e9bfea15dfe132ee137283a9f24bc4c413ce4a) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/FailureMechanismEntityReadExtensions.cs (.../FailureMechanismEntityReadExtensions.cs) (revision 308f45aac80baf6744776a04e10e3cbaf8c39198) @@ -245,10 +245,11 @@ HeightStructuresFailureMechanism failureMechanism, ReadConversionCollector collector) { + HeightStructuresFailureMechanismMetaEntity metaEntity = entity.HeightStructuresFailureMechanismMetaEntities.Single(); entity.ReadCommonFailureMechanismProperties(failureMechanism, collector); entity.ReadHeightStructuresMechanismSectionResults(failureMechanism, collector); entity.ReadForeshoreProfiles(failureMechanism.ForeshoreProfiles, collector); - entity.ReadHeightStructures(failureMechanism.HeightStructures, collector); + entity.ReadHeightStructures(metaEntity, failureMechanism.HeightStructures, collector); entity.ReadGeneralInput(failureMechanism.GeneralInput); ReadHeightStructuresRootCalculationGroup(entity.CalculationGroupEntity, failureMechanism.CalculationsGroup, collector); } @@ -266,10 +267,17 @@ } } - private static void ReadHeightStructures(this FailureMechanismEntity entity, StructureCollection heightStructures, ReadConversionCollector collector) + private static void ReadHeightStructures(this FailureMechanismEntity entity, + HeightStructuresFailureMechanismMetaEntity metaEntity, + StructureCollection heightStructures, + ReadConversionCollector collector) { - heightStructures.AddRange(entity.HeightStructureEntities.OrderBy(fpe => fpe.Order).Select(structureEntity => structureEntity.Read(collector)), - "TODO: To be determined"); + if (metaEntity.HeightStructureCollectionSourcePath != null) + { + heightStructures.AddRange(entity.HeightStructureEntities.OrderBy(fpe => fpe.Order) + .Select(structureEntity => structureEntity.Read(collector)), + metaEntity.HeightStructureCollectionSourcePath); + } } private static void ReadGeneralInput(this FailureMechanismEntity entity, GeneralHeightStructuresInput generalInput) Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Application.Ringtoets.Storage.Test.csproj =================================================================== diff -u -r6b20f88a2f50fb210b0458b7268a325f2a8d5391 -r308f45aac80baf6744776a04e10e3cbaf8c39198 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Application.Ringtoets.Storage.Test.csproj (.../Application.Ringtoets.Storage.Test.csproj) (revision 6b20f88a2f50fb210b0458b7268a325f2a8d5391) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Application.Ringtoets.Storage.Test.csproj (.../Application.Ringtoets.Storage.Test.csproj) (revision 308f45aac80baf6744776a04e10e3cbaf8c39198) @@ -89,7 +89,6 @@ - Fisheye: Tag 308f45aac80baf6744776a04e10e3cbaf8c39198 refers to a dead (removed) revision in file `Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/HeightStructures/GeneralHeightStructuresInputCreateExtensionsTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/HeightStructures/HeightStructuresFailureMechanismCreateExtensionsTest.cs =================================================================== diff -u -r20e9bfea15dfe132ee137283a9f24bc4c413ce4a -r308f45aac80baf6744776a04e10e3cbaf8c39198 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/HeightStructures/HeightStructuresFailureMechanismCreateExtensionsTest.cs (.../HeightStructuresFailureMechanismCreateExtensionsTest.cs) (revision 20e9bfea15dfe132ee137283a9f24bc4c413ce4a) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/HeightStructures/HeightStructuresFailureMechanismCreateExtensionsTest.cs (.../HeightStructuresFailureMechanismCreateExtensionsTest.cs) (revision 308f45aac80baf6744776a04e10e3cbaf8c39198) @@ -91,6 +91,7 @@ HeightStructuresFailureMechanismMetaEntity metaEntity = entity.HeightStructuresFailureMechanismMetaEntities.First(); Assert.AreEqual(failureMechanism.GeneralInput.N, metaEntity.N); + Assert.IsNull(metaEntity.HeightStructureCollectionSourcePath); } [Test] @@ -100,6 +101,7 @@ const string originalInput = "Some input text"; const string originalOutput = "Some output text"; const string originalNotRelevantText = "Really not relevant"; + const string originalSourcePath = "Really not relevant"; var failureMechanism = new HeightStructuresFailureMechanism { InputComments = @@ -115,6 +117,7 @@ Body = originalNotRelevantText } }; + failureMechanism.HeightStructures.AddRange(Enumerable.Empty(), originalSourcePath); var registry = new PersistenceRegistry(); // Call @@ -130,6 +133,11 @@ Assert.AreNotSame(originalNotRelevantText, entity.NotRelevantComments, "To create stable binary representations/fingerprints, it's really important that strings are not shared."); Assert.AreEqual(failureMechanism.NotRelevantComments.Body, entity.NotRelevantComments); + + HeightStructuresFailureMechanismMetaEntity metaEntity = entity.HeightStructuresFailureMechanismMetaEntities.First(); + Assert.AreEqual(originalSourcePath, metaEntity.HeightStructureCollectionSourcePath); + Assert.AreNotSame(originalSourcePath, metaEntity.HeightStructureCollectionSourcePath, + "To create stable binary representations/fingerprints, it's really important that strings are not shared."); } [Test] Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/FailureMechanismEntityReadExtensionsTest.cs =================================================================== diff -u -r20e9bfea15dfe132ee137283a9f24bc4c413ce4a -r308f45aac80baf6744776a04e10e3cbaf8c39198 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/FailureMechanismEntityReadExtensionsTest.cs (.../FailureMechanismEntityReadExtensionsTest.cs) (revision 20e9bfea15dfe132ee137283a9f24bc4c413ce4a) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/FailureMechanismEntityReadExtensionsTest.cs (.../FailureMechanismEntityReadExtensionsTest.cs) (revision 308f45aac80baf6744776a04e10e3cbaf8c39198) @@ -1039,6 +1039,7 @@ public void ReadAsHeightStructuresFailureMechanism_WithHeightStructures_ReturnFailureMechanismWithHeightStructuresSet() { // Setup + const string sourcePath = "Some path"; var entity = new FailureMechanismEntity { CalculationGroupEntity = new CalculationGroupEntity(), @@ -1061,7 +1062,8 @@ { new HeightStructuresFailureMechanismMetaEntity { - N = 7 + N = 7, + HeightStructureCollectionSourcePath = sourcePath } } }; @@ -1079,6 +1081,8 @@ HeightStructure child2 = failureMechanism.HeightStructures[1]; Assert.AreEqual("Child1", child2.Name); + + Assert.AreEqual(sourcePath, failureMechanism.HeightStructures.SourcePath); } #endregion