Index: Riskeer/Common/test/Riskeer.Common.Forms.Test/Views/FailureMechanismResultViewTest.cs =================================================================== diff -u -r80a56581e3ae390973d398e93f1cc9ac07782941 -r12c148380aebf7d0a3df9470ed6285ce96fd2e80 --- Riskeer/Common/test/Riskeer.Common.Forms.Test/Views/FailureMechanismResultViewTest.cs (.../FailureMechanismResultViewTest.cs) (revision 80a56581e3ae390973d398e93f1cc9ac07782941) +++ Riskeer/Common/test/Riskeer.Common.Forms.Test/Views/FailureMechanismResultViewTest.cs (.../FailureMechanismResultViewTest.cs) (revision 12c148380aebf7d0a3df9470ed6285ce96fd2e80) @@ -641,7 +641,7 @@ } } - # region Assembly + #region Assembly [Test] public void FailureMechanismResultView_AllDataSet_PassesInputToPerformAssemblyFunc() Index: Riskeer/Integration/src/Riskeer.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs =================================================================== diff -u -r59f629f1449d163cb66d5459554512a2b67d8487 -r12c148380aebf7d0a3df9470ed6285ce96fd2e80 --- Riskeer/Integration/src/Riskeer.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs (.../AssessmentSectionMergeHandler.cs) (revision 59f629f1449d163cb66d5459554512a2b67d8487) +++ Riskeer/Integration/src/Riskeer.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs (.../AssessmentSectionMergeHandler.cs) (revision 12c148380aebf7d0a3df9470ed6285ce96fd2e80) @@ -164,10 +164,18 @@ { string fileName = Path.GetFileNameWithoutExtension(sourceHydraulicBoundaryDatabase.FilePath); - changedObjects.AddRange(MergeHydraulicBoundaryLocationCalculationData( - targetAssessmentSection, sourceAssessmentSection, - targetAssessmentSection.HydraulicBoundaryData.HydraulicBoundaryDatabases.First( - hbd => Path.GetFileNameWithoutExtension(hbd.FilePath) == fileName).Locations, + List targetHydraulicBoundaryLocations = targetAssessmentSection.HydraulicBoundaryData.HydraulicBoundaryDatabases.First( + hbd => Path.GetFileNameWithoutExtension(hbd.FilePath) == fileName).Locations; + + changedObjects.AddRange(MergeHydraulicBoundaryLocationCalculationData(targetAssessmentSection, + sourceAssessmentSection, + targetHydraulicBoundaryLocations, + sourceHydraulicBoundaryDatabase.Locations)); + + changedObjects.AddRange(MergeDuneLocationCalculationData( + targetAssessmentSection.DuneErosion.DuneLocationCalculationsForUserDefinedTargetProbabilities, + sourceAssessmentSection.DuneErosion.DuneLocationCalculationsForUserDefinedTargetProbabilities, + targetHydraulicBoundaryLocations, sourceHydraulicBoundaryDatabase.Locations)); } @@ -199,6 +207,8 @@ return changedObjects; } + #region HydraulicBoundaryLocationCalculations + private static IEnumerable MergeHydraulicBoundaryLocationCalculationsForUserDefinedTargetProbabilities( IAssessmentSection targetAssessmentSection, IAssessmentSection sourceAssessmentSection) @@ -243,45 +253,6 @@ return changedObjects; } - private static IEnumerable MergeDuneLocationCalculationsForUserDefinedTargetProbabilities(AssessmentSection targetAssessmentSection, - AssessmentSection sourceAssessmentSection) - { - var changedObjects = new List(); - - ObservableList targetCalculationsForTargetProbabilities = - targetAssessmentSection.DuneErosion.DuneLocationCalculationsForUserDefinedTargetProbabilities; - - IEnumerable existingTargetProbabilities = targetCalculationsForTargetProbabilities - .Select(tc => tc.TargetProbability); - - IEnumerable targetProbabilitiesToAdd = sourceAssessmentSection.DuneErosion.DuneLocationCalculationsForUserDefinedTargetProbabilities - .Select(sc => sc.TargetProbability) - .Except(existingTargetProbabilities) - .ToArray(); - - if (targetProbabilitiesToAdd.Any()) - { - targetProbabilitiesToAdd.ForEachElementDo( - tp => targetCalculationsForTargetProbabilities.Add( - CreateDuneLocationCalculationsForTargetProbability(targetAssessmentSection.DuneErosion, tp))); - - changedObjects.Add(targetCalculationsForTargetProbabilities); - } - - return changedObjects; - } - - private static DuneLocationCalculationsForTargetProbability CreateDuneLocationCalculationsForTargetProbability(DuneErosionFailureMechanism failureMechanism, - double targetProbability) - { - var duneLocationCalculationsForTargetProbability = new DuneLocationCalculationsForTargetProbability(targetProbability); - - duneLocationCalculationsForTargetProbability.DuneLocationCalculations.AddRange( - failureMechanism.DuneLocations.Select(dl => new DuneLocationCalculation(dl))); - - return duneLocationCalculationsForTargetProbability; - } - private static IEnumerable MergeHydraulicBoundaryLocationCalculationData(IAssessmentSection targetAssessmentSection, IAssessmentSection sourceAssessmentSection, IEnumerable targetHydraulicBoundaryLocations, @@ -378,6 +349,101 @@ #endregion + #region DuneLocationCalculations + + private static IEnumerable MergeDuneLocationCalculationsForUserDefinedTargetProbabilities(AssessmentSection targetAssessmentSection, + AssessmentSection sourceAssessmentSection) + { + var changedObjects = new List(); + + ObservableList targetCalculationsForTargetProbabilities = + targetAssessmentSection.DuneErosion.DuneLocationCalculationsForUserDefinedTargetProbabilities; + + IEnumerable existingTargetProbabilities = targetCalculationsForTargetProbabilities + .Select(tc => tc.TargetProbability); + + IEnumerable targetProbabilitiesToAdd = sourceAssessmentSection.DuneErosion.DuneLocationCalculationsForUserDefinedTargetProbabilities + .Select(sc => sc.TargetProbability) + .Except(existingTargetProbabilities) + .ToArray(); + + if (targetProbabilitiesToAdd.Any()) + { + targetProbabilitiesToAdd.ForEachElementDo( + tp => targetCalculationsForTargetProbabilities.Add( + CreateDuneLocationCalculationsForTargetProbability(targetAssessmentSection.DuneErosion, tp))); + + changedObjects.Add(targetCalculationsForTargetProbabilities); + } + + return changedObjects; + } + + private static DuneLocationCalculationsForTargetProbability CreateDuneLocationCalculationsForTargetProbability(DuneErosionFailureMechanism failureMechanism, + double targetProbability) + { + var duneLocationCalculationsForTargetProbability = new DuneLocationCalculationsForTargetProbability(targetProbability); + + duneLocationCalculationsForTargetProbability.DuneLocationCalculations.AddRange( + failureMechanism.DuneLocations.Select(dl => new DuneLocationCalculation(dl))); + + return duneLocationCalculationsForTargetProbability; + } + + private static IEnumerable MergeDuneLocationCalculationData( + IEnumerable targetCalculations, + IEnumerable sourceCalculations, + IEnumerable targetHydraulicBoundaryLocations, + IEnumerable sourceHydraulicBoundaryLocations) + { + var changedObjects = new List(); + + foreach (DuneLocationCalculationsForTargetProbability sourceCalculationsForTargetProbability in sourceCalculations) + { + DuneLocationCalculationsForTargetProbability targetCalculationsForTargetProbability = targetCalculations.First( + c => c.TargetProbability.Equals(sourceCalculationsForTargetProbability.TargetProbability)); + + changedObjects.AddRange(MergeDuneLocationCalculationData( + targetCalculationsForTargetProbability.DuneLocationCalculations + .Where(c => targetHydraulicBoundaryLocations.Contains(c.DuneLocation.HydraulicBoundaryLocation)), + sourceCalculationsForTargetProbability.DuneLocationCalculations + .Where(c => sourceHydraulicBoundaryLocations.Contains(c.DuneLocation.HydraulicBoundaryLocation)))); + } + + return changedObjects; + } + + private static IEnumerable MergeDuneLocationCalculationData(IEnumerable targetCalculations, + IEnumerable sourceCalculations) + { + for (var i = 0; i < targetCalculations.Count(); i++) + { + DuneLocationCalculation targetCalculation = targetCalculations.ElementAt(i); + DuneLocationCalculation sourceCalculation = sourceCalculations.ElementAt(i); + + if (ShouldMerge(targetCalculation, sourceCalculation)) + { + MergeCalculationData(targetCalculation, sourceCalculation); + + yield return targetCalculation; + } + } + } + + private static bool ShouldMerge(DuneLocationCalculation targetCalculation, DuneLocationCalculation sourceCalculation) + { + return targetCalculation.Output == null && sourceCalculation.Output != null; + } + + private static void MergeCalculationData(DuneLocationCalculation targetCalculation, DuneLocationCalculation sourceCalculation) + { + targetCalculation.Output = sourceCalculation.Output; + } + + #endregion + + #endregion + #region FailureMechanisms private static void MergeFailureMechanisms(AssessmentSection targetAssessmentSection, AssessmentSectionMergeData mergeData) Index: Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Merge/AssessmentSectionMergeHandlerTest.cs =================================================================== diff -u -r1d79604ef0197e52b238d1d53d776cfa2f272bdc -r12c148380aebf7d0a3df9470ed6285ce96fd2e80 --- Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Merge/AssessmentSectionMergeHandlerTest.cs (.../AssessmentSectionMergeHandlerTest.cs) (revision 1d79604ef0197e52b238d1d53d776cfa2f272bdc) +++ Riskeer/Integration/test/Riskeer.Integration.Plugin.Test/Merge/AssessmentSectionMergeHandlerTest.cs (.../AssessmentSectionMergeHandlerTest.cs) (revision 12c148380aebf7d0a3df9470ed6285ce96fd2e80) @@ -669,8 +669,6 @@ mocks.VerifyAll(); } - # endregion - private static AssessmentSection CreateAssessmentSection(HydraulicBoundaryLocation[] locations, double targetProbability = 0.1) { var assessmentSection = new AssessmentSection(AssessmentSectionComposition.Dike) @@ -1520,5 +1518,7 @@ } #endregion + + #endregion } } \ No newline at end of file Index: Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationTo221IntegrationTest.cs =================================================================== diff -u -r9e9976818f1b446948c3bf815cafe2e023f98ac1 -r12c148380aebf7d0a3df9470ed6285ce96fd2e80 --- Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationTo221IntegrationTest.cs (.../MigrationTo221IntegrationTest.cs) (revision 9e9976818f1b446948c3bf815cafe2e023f98ac1) +++ Riskeer/Migration/test/Riskeer.Migration.Integration.Test/MigrationTo221IntegrationTest.cs (.../MigrationTo221IntegrationTest.cs) (revision 12c148380aebf7d0a3df9470ed6285ce96fd2e80) @@ -925,7 +925,7 @@ #endregion - # region GrassCoverErosionInwards + #region GrassCoverErosionInwards private static void AssertGrassCoverErosionInwardsFailureMechanismMetaEntity(MigratedDatabaseReader reader, string sourceFilePath) { @@ -1096,7 +1096,7 @@ #endregion - # region GrassCoverErosionOutwards + #region GrassCoverErosionOutwards private static void AssertGrassCoverErosionOutwardsFailureMechanismMetaEntity(MigratedDatabaseReader reader, string sourceFilePath) { Index: Riskeer/Piping/test/Riskeer.Piping.Data.Test/PipingFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -r21db6e69fc90b3abcb46f2154edc9a88cf862cb7 -r12c148380aebf7d0a3df9470ed6285ce96fd2e80 --- Riskeer/Piping/test/Riskeer.Piping.Data.Test/PipingFailureMechanismAssemblyFactoryTest.cs (.../PipingFailureMechanismAssemblyFactoryTest.cs) (revision 21db6e69fc90b3abcb46f2154edc9a88cf862cb7) +++ Riskeer/Piping/test/Riskeer.Piping.Data.Test/PipingFailureMechanismAssemblyFactoryTest.cs (.../PipingFailureMechanismAssemblyFactoryTest.cs) (revision 12c148380aebf7d0a3df9470ed6285ce96fd2e80) @@ -42,7 +42,7 @@ [TestFixture] public class PipingFailureMechanismAssemblyFactoryTest { - # region AssembleSection + #region AssembleSection [Test] public void AssembleSection_SectionResultNull_ThrowsArgumentNullException() Index: Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/FailureMechanismCreateExtensionsTest.cs =================================================================== diff -u -r9e9976818f1b446948c3bf815cafe2e023f98ac1 -r12c148380aebf7d0a3df9470ed6285ce96fd2e80 --- Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/FailureMechanismCreateExtensionsTest.cs (.../FailureMechanismCreateExtensionsTest.cs) (revision 9e9976818f1b446948c3bf815cafe2e023f98ac1) +++ Riskeer/Storage/test/Riskeer.Storage.Core.Test/Create/FailureMechanismCreateExtensionsTest.cs (.../FailureMechanismCreateExtensionsTest.cs) (revision 12c148380aebf7d0a3df9470ed6285ce96fd2e80) @@ -35,7 +35,7 @@ [TestFixture] public class FailureMechanismCreateExtensionsTest { - # region FailureMechanism + #region FailureMechanism [Test] public void CreateForFailureMechanism_RegistryNull_ThrowsArgumentNullException() @@ -192,7 +192,7 @@ #endregion - # region CalculatableFailureMechanism + #region CalculatableFailureMechanism [Test] public void CreateForCalculatableFailureMechanism_RegistryNull_ThrowsArgumentNullException()