Index: Riskeer/Integration/src/Riskeer.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs =================================================================== diff -u -r297462ba9127f686dd41384d91ba79cba91c9363 -rc93ac2bdd64812a93293a7bf711ba9a9ba548a30 --- Riskeer/Integration/src/Riskeer.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs (.../AssessmentSectionMergeHandler.cs) (revision 297462ba9127f686dd41384d91ba79cba91c9363) +++ Riskeer/Integration/src/Riskeer.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs (.../AssessmentSectionMergeHandler.cs) (revision c93ac2bdd64812a93293a7bf711ba9a9ba548a30) @@ -92,14 +92,12 @@ changedObjects.AddRange(MergeHydraulicBoundaryLocationCalculations(targetAssessmentSection.WaterLevelCalculationsForLowerLimitNorm, sourceAssessmentSection.WaterLevelCalculationsForLowerLimitNorm)); - MergeUserDefinedHydraulicBoundaryLocations(targetAssessmentSection.WaterLevelCalculationsForUserDefinedTargetProbabilities, - sourceAssessmentSection.WaterLevelCalculationsForUserDefinedTargetProbabilities, - changedObjects, - targetAssessmentSection.HydraulicBoundaryDatabase.Locations); - MergeUserDefinedHydraulicBoundaryLocations(targetAssessmentSection.WaveHeightCalculationsForUserDefinedTargetProbabilities, - sourceAssessmentSection.WaveHeightCalculationsForUserDefinedTargetProbabilities, - changedObjects, - targetAssessmentSection.HydraulicBoundaryDatabase.Locations); + changedObjects.AddRange(MergeUserDefinedHydraulicBoundaryLocations(targetAssessmentSection.WaterLevelCalculationsForUserDefinedTargetProbabilities, + sourceAssessmentSection.WaterLevelCalculationsForUserDefinedTargetProbabilities, + targetAssessmentSection.HydraulicBoundaryDatabase.Locations)); + changedObjects.AddRange(MergeUserDefinedHydraulicBoundaryLocations(targetAssessmentSection.WaveHeightCalculationsForUserDefinedTargetProbabilities, + sourceAssessmentSection.WaveHeightCalculationsForUserDefinedTargetProbabilities, + targetAssessmentSection.HydraulicBoundaryDatabase.Locations)); log.Info(changedObjects.Any() ? Resources.AssessmentSectionMergeHandler_MergeHydraulicBoundaryLocations_HydraulicBoundaryLocations_merged @@ -108,21 +106,27 @@ return changedObjects; } - private static void MergeUserDefinedHydraulicBoundaryLocations(ObservableList targetProbabilities, - IEnumerable sourceProbabilities, - List changedObjects, IEnumerable hydraulicBoundaryLocations) + private static IEnumerable MergeUserDefinedHydraulicBoundaryLocations(ObservableList targetProbabilities, + IEnumerable sourceProbabilities, + IEnumerable hydraulicBoundaryLocations) { HydraulicBoundaryLocationCalculationsForTargetProbability[] probabilitiesToMerge = sourceProbabilities.Where(stp => targetProbabilities .Select(c => c.TargetProbability) .Contains(stp.TargetProbability)) .ToArray(); - MergeProbabilities(targetProbabilities, changedObjects, probabilitiesToMerge); + var changedObjects = new List(); + + changedObjects.AddRange(MergeProbabilities(targetProbabilities, probabilitiesToMerge)); MergeUniqueProbabilities(targetProbabilities, () => sourceProbabilities.Except(probabilitiesToMerge), hydraulicBoundaryLocations); + + return changedObjects; } - private static void MergeProbabilities(ObservableList userDefinedTargetProbabilities, List changedObjects, HydraulicBoundaryLocationCalculationsForTargetProbability[] probabilitiesToMerge) + private static IEnumerable MergeProbabilities(ObservableList userDefinedTargetProbabilities, HydraulicBoundaryLocationCalculationsForTargetProbability[] probabilitiesToMerge) { + var changedObjects = new List(); + foreach (HydraulicBoundaryLocationCalculationsForTargetProbability probabilityToMerge in probabilitiesToMerge) { HydraulicBoundaryLocationCalculationsForTargetProbability targetProbability = userDefinedTargetProbabilities.First( @@ -131,6 +135,8 @@ changedObjects.AddRange(MergeHydraulicBoundaryLocationCalculations(targetProbability.HydraulicBoundaryLocationCalculations, probabilityToMerge.HydraulicBoundaryLocationCalculations)); } + + return changedObjects; } private static void MergeUniqueProbabilities(ObservableList userDefinedTargetProbabilities, Func> getTargetProbabilities, IEnumerable hydraulicBoundaryLocations)