Index: Riskeer/Storage/src/Riskeer.Storage.Core/Create/AssessmentSectionCreateExtensions.cs =================================================================== diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -r6d0d122d4f56b79e5c0157702d85463588496b41 --- Riskeer/Storage/src/Riskeer.Storage.Core/Create/AssessmentSectionCreateExtensions.cs (.../AssessmentSectionCreateExtensions.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea) +++ Riskeer/Storage/src/Riskeer.Storage.Core/Create/AssessmentSectionCreateExtensions.cs (.../AssessmentSectionCreateExtensions.cs) (revision 6d0d122d4f56b79e5c0157702d85463588496b41) @@ -121,13 +121,7 @@ { if (hydraulicBoundaryDatabase.IsLinked()) { - entity.HydraulicBoundaryDatabaseEntities.Add(hydraulicBoundaryDatabase.Create()); - - for (var i = 0; i < hydraulicBoundaryDatabase.Locations.Count; i++) - { - HydraulicBoundaryLocation hydraulicBoundaryLocation = hydraulicBoundaryDatabase.Locations[i]; - entity.HydraulicLocationEntities.Add(hydraulicBoundaryLocation.Create(registry, i)); - } + entity.HydraulicBoundaryDatabaseEntities.Add(hydraulicBoundaryDatabase.Create(registry)); } } Index: Riskeer/Storage/src/Riskeer.Storage.Core/Create/HydraulicLocationConfigurationSettingsCreateExtensions.cs =================================================================== diff -u -r4cb9b5c812d68586b26b39b4c973e635dd2aa1c8 -r6d0d122d4f56b79e5c0157702d85463588496b41 --- Riskeer/Storage/src/Riskeer.Storage.Core/Create/HydraulicLocationConfigurationSettingsCreateExtensions.cs (.../HydraulicLocationConfigurationSettingsCreateExtensions.cs) (revision 4cb9b5c812d68586b26b39b4c973e635dd2aa1c8) +++ Riskeer/Storage/src/Riskeer.Storage.Core/Create/HydraulicLocationConfigurationSettingsCreateExtensions.cs (.../HydraulicLocationConfigurationSettingsCreateExtensions.cs) (revision 6d0d122d4f56b79e5c0157702d85463588496b41) @@ -38,18 +38,24 @@ /// /// The to create a /// for. + /// The object keeping track of create operations. /// A new . - /// Thrown when + /// Thrown when any parameter /// is null. - internal static HydraulicBoundaryDatabaseEntity Create(this HydraulicBoundaryDatabase hydraulicBoundaryDatabase) + internal static HydraulicBoundaryDatabaseEntity Create(this HydraulicBoundaryDatabase hydraulicBoundaryDatabase, PersistenceRegistry registry) { if (hydraulicBoundaryDatabase == null) { throw new ArgumentNullException(nameof(hydraulicBoundaryDatabase)); } + if (registry == null) + { + throw new ArgumentNullException(nameof(registry)); + } + HydraulicLocationConfigurationSettings settings = hydraulicBoundaryDatabase.HydraulicLocationConfigurationSettings; - return new HydraulicBoundaryDatabaseEntity + var databaseEntity = new HydraulicBoundaryDatabaseEntity { FilePath = hydraulicBoundaryDatabase.FilePath.DeepClone(), Version = hydraulicBoundaryDatabase.Version.DeepClone(), @@ -65,6 +71,19 @@ HydraulicLocationConfigurationSettingsWindSpeed = settings.WindSpeed.DeepClone(), HydraulicLocationConfigurationSettingsComment = settings.Comment.DeepClone() }; + + CreateLocations(hydraulicBoundaryDatabase, registry, databaseEntity); + + return databaseEntity; } + + private static void CreateLocations(HydraulicBoundaryDatabase hydraulicBoundaryDatabase, PersistenceRegistry registry, HydraulicBoundaryDatabaseEntity entity) + { + for (var i = 0; i < hydraulicBoundaryDatabase.Locations.Count; i++) + { + HydraulicBoundaryLocation hydraulicBoundaryLocation = hydraulicBoundaryDatabase.Locations[i]; + entity.HydraulicLocationEntities.Add(hydraulicBoundaryLocation.Create(registry, i)); + } + } } } \ No newline at end of file Index: Riskeer/Storage/src/Riskeer.Storage.Core/Read/AssessmentSectionEntityReadExtensions.cs =================================================================== diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -r6d0d122d4f56b79e5c0157702d85463588496b41 --- Riskeer/Storage/src/Riskeer.Storage.Core/Read/AssessmentSectionEntityReadExtensions.cs (.../AssessmentSectionEntityReadExtensions.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea) +++ Riskeer/Storage/src/Riskeer.Storage.Core/Read/AssessmentSectionEntityReadExtensions.cs (.../AssessmentSectionEntityReadExtensions.cs) (revision 6d0d122d4f56b79e5c0157702d85463588496b41) @@ -122,10 +122,10 @@ HydraulicBoundaryDatabase hydraulicBoundaryDatabase = assessmentSection.HydraulicBoundaryDatabase; hydraulicBoundaryDatabaseEntity.Read(hydraulicBoundaryDatabase); - HydraulicBoundaryLocation[] readHydraulicBoundaryLocations = entity.HydraulicLocationEntities - .OrderBy(hl => hl.Order) - .Select(hle => hle.Read(collector)) - .ToArray(); + HydraulicBoundaryLocation[] readHydraulicBoundaryLocations = hydraulicBoundaryDatabaseEntity.HydraulicLocationEntities + .OrderBy(hl => hl.Order) + .Select(hle => hle.Read(collector)) + .ToArray(); hydraulicBoundaryDatabase.Locations.AddRange(readHydraulicBoundaryLocations); assessmentSection.SetHydraulicBoundaryLocationCalculations(readHydraulicBoundaryLocations); assessmentSection.GrassCoverErosionOutwards.SetHydraulicBoundaryLocationCalculations(readHydraulicBoundaryLocations); Index: Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/AssessmentSectionCreateExtensionsTest.cs =================================================================== diff -u -r86594ccd7329d320872573a1d066fe18959d3cea -r6d0d122d4f56b79e5c0157702d85463588496b41 --- Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/AssessmentSectionCreateExtensionsTest.cs (.../AssessmentSectionCreateExtensionsTest.cs) (revision 86594ccd7329d320872573a1d066fe18959d3cea) +++ Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/AssessmentSectionCreateExtensionsTest.cs (.../AssessmentSectionCreateExtensionsTest.cs) (revision 6d0d122d4f56b79e5c0157702d85463588496b41) @@ -194,7 +194,6 @@ // Assert CollectionAssert.IsEmpty(entity.HydraulicBoundaryDatabaseEntities); - CollectionAssert.IsEmpty(entity.HydraulicLocationEntities); AssertHydraulicLocationCalculationCollectionEntities(assessmentSection, entity); } @@ -233,6 +232,9 @@ Assert.AreEqual(hydraulicBoundaryDatabase.FilePath, hydraulicBoundaryDatabaseEntity.FilePath); Assert.AreEqual(hydraulicBoundaryDatabase.Version, hydraulicBoundaryDatabaseEntity.Version); + int expectedNrOfHydraulicBoundaryLocations = hydraulicBoundaryDatabase.Locations.Count; + Assert.AreEqual(expectedNrOfHydraulicBoundaryLocations, hydraulicBoundaryDatabaseEntity.HydraulicLocationEntities.Count); + HydraulicLocationConfigurationSettings settings = hydraulicBoundaryDatabase.HydraulicLocationConfigurationSettings; Assert.AreEqual(settings.FilePath, hydraulicBoundaryDatabaseEntity.HydraulicLocationConfigurationSettingsFilePath); Assert.AreEqual(settings.ScenarioName, hydraulicBoundaryDatabaseEntity.HydraulicLocationConfigurationSettingsScenarioName); @@ -245,9 +247,6 @@ Assert.AreEqual(settings.WindSpeed, hydraulicBoundaryDatabaseEntity.HydraulicLocationConfigurationSettingsWindSpeed); Assert.AreEqual(settings.Comment, hydraulicBoundaryDatabaseEntity.HydraulicLocationConfigurationSettingsComment); - int expectedNrOfHydraulicBoundaryLocations = hydraulicBoundaryDatabase.Locations.Count; - Assert.AreEqual(expectedNrOfHydraulicBoundaryLocations, entity.HydraulicLocationEntities.Count); - AssertHydraulicLocationCalculationCollectionEntities(assessmentSection, entity); } Index: Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/HydraulicLocationConfigurationSettingsCreateExtensionsTest.cs =================================================================== diff -u -r4cb9b5c812d68586b26b39b4c973e635dd2aa1c8 -r6d0d122d4f56b79e5c0157702d85463588496b41 --- Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/HydraulicLocationConfigurationSettingsCreateExtensionsTest.cs (.../HydraulicLocationConfigurationSettingsCreateExtensionsTest.cs) (revision 4cb9b5c812d68586b26b39b4c973e635dd2aa1c8) +++ Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/HydraulicLocationConfigurationSettingsCreateExtensionsTest.cs (.../HydraulicLocationConfigurationSettingsCreateExtensionsTest.cs) (revision 6d0d122d4f56b79e5c0157702d85463588496b41) @@ -35,10 +35,10 @@ public void Create_HydraulicBoundaryDatabaseNull_ThrowsArgumentNullException() { // Call - TestDelegate call = () => ((HydraulicBoundaryDatabase) null).Create(); + void Call() => ((HydraulicBoundaryDatabase) null).Create(new PersistenceRegistry()); // Assert - var exception = Assert.Throws(call); + var exception = Assert.Throws(Call); Assert.AreEqual("hydraulicBoundaryDatabase", exception.ParamName); } @@ -65,7 +65,7 @@ "Comment"); // Call - HydraulicBoundaryDatabaseEntity entity = hydraulicBoundaryDatabase.Create(); + HydraulicBoundaryDatabaseEntity entity = hydraulicBoundaryDatabase.Create(new PersistenceRegistry()); // Assert TestHelper.AssertAreEqualButNotSame(hydraulicBoundaryDatabase.FilePath, entity.FilePath); Index: Riskeer/Storage/test/Riskeer.Storage.Core.Test/Read/AssessmentSectionEntityReadExtensionsTest.cs =================================================================== diff -u -r397feab39b3bd3a7611c76529ade220c50aaec0d -r6d0d122d4f56b79e5c0157702d85463588496b41 --- Riskeer/Storage/test/Riskeer.Storage.Core.Test/Read/AssessmentSectionEntityReadExtensionsTest.cs (.../AssessmentSectionEntityReadExtensionsTest.cs) (revision 397feab39b3bd3a7611c76529ade220c50aaec0d) +++ Riskeer/Storage/test/Riskeer.Storage.Core.Test/Read/AssessmentSectionEntityReadExtensionsTest.cs (.../AssessmentSectionEntityReadExtensionsTest.cs) (revision 6d0d122d4f56b79e5c0157702d85463588496b41) @@ -206,15 +206,17 @@ public void Read_WithHydraulicBoundaryLocationCalculations_ReturnsNewAssessmentSectionWithHydraulicBoundaryLocationCalculationsSet() { // Setup - AssessmentSectionEntity entity = CreateAssessmentSectionEntity(); - entity.HydraulicBoundaryDatabaseEntities.Add(CreateHydraulicDatabaseEntity()); - entity.BackgroundDataEntities.Add(CreateBackgroundDataEntity()); - HydraulicLocationEntity hydraulicLocationEntity = HydraulicLocationEntityTestFactory.CreateHydraulicLocationEntity(); hydraulicLocationEntity.Name = "A"; hydraulicLocationEntity.Order = 1; - entity.HydraulicLocationEntities.Add(hydraulicLocationEntity); + HydraulicBoundaryDatabaseEntity hydraulicBoundaryDatabaseEntity = CreateHydraulicDatabaseEntity(); + hydraulicBoundaryDatabaseEntity.HydraulicLocationEntities.Add(hydraulicLocationEntity); + + AssessmentSectionEntity entity = CreateAssessmentSectionEntity(); + entity.HydraulicBoundaryDatabaseEntities.Add(hydraulicBoundaryDatabaseEntity); + entity.BackgroundDataEntities.Add(CreateBackgroundDataEntity()); + entity.HydraulicLocationCalculationCollectionEntity = CreateHydraulicLocationCollectionCalculationEntity(hydraulicLocationEntity, 1); entity.HydraulicLocationCalculationCollectionEntity1 = CreateHydraulicLocationCollectionCalculationEntity(hydraulicLocationEntity, 2); entity.HydraulicLocationCalculationCollectionEntity2 = CreateHydraulicLocationCollectionCalculationEntity(hydraulicLocationEntity, 3); @@ -337,19 +339,21 @@ public void Read_WithHydraulicDatabaseLocations_ReturnsNewAssessmentSectionWithLocationsSet() { // Setup - AssessmentSectionEntity entity = CreateAssessmentSectionEntity(); - entity.HydraulicBoundaryDatabaseEntities.Add(CreateHydraulicDatabaseEntity()); - entity.BackgroundDataEntities.Add(CreateBackgroundDataEntity()); - HydraulicLocationEntity hydraulicLocationEntityOne = HydraulicLocationEntityTestFactory.CreateHydraulicLocationEntity(); hydraulicLocationEntityOne.Name = "A"; hydraulicLocationEntityOne.Order = 1; - entity.HydraulicLocationEntities.Add(hydraulicLocationEntityOne); HydraulicLocationEntity hydraulicLocationEntityTwo = HydraulicLocationEntityTestFactory.CreateHydraulicLocationEntity(); hydraulicLocationEntityOne.Name = "B"; hydraulicLocationEntityOne.Order = 0; - entity.HydraulicLocationEntities.Add(hydraulicLocationEntityTwo); + HydraulicBoundaryDatabaseEntity hydraulicBoundaryDatabaseEntity = CreateHydraulicDatabaseEntity(); + hydraulicBoundaryDatabaseEntity.HydraulicLocationEntities.Add(hydraulicLocationEntityOne); + hydraulicBoundaryDatabaseEntity.HydraulicLocationEntities.Add(hydraulicLocationEntityTwo); + + AssessmentSectionEntity entity = CreateAssessmentSectionEntity(); + entity.HydraulicBoundaryDatabaseEntities.Add(CreateHydraulicDatabaseEntity()); + entity.BackgroundDataEntities.Add(CreateBackgroundDataEntity()); + entity.HydraulicLocationCalculationCollectionEntity = new HydraulicLocationCalculationCollectionEntity(); entity.HydraulicLocationCalculationCollectionEntity1 = new HydraulicLocationCalculationCollectionEntity(); entity.HydraulicLocationCalculationCollectionEntity2 = new HydraulicLocationCalculationCollectionEntity();