Index: Riskeer/Integration/src/Riskeer.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs =================================================================== diff -u -r900b61c96d2996792f400370d551ea3299afe993 -rf10c81e881788b537179e8345609850516803e98 --- Riskeer/Integration/src/Riskeer.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs (.../AssessmentSectionMergeHandler.cs) (revision 900b61c96d2996792f400370d551ea3299afe993) +++ Riskeer/Integration/src/Riskeer.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs (.../AssessmentSectionMergeHandler.cs) (revision f10c81e881788b537179e8345609850516803e98) @@ -108,20 +108,20 @@ return changedObjects; } - private static void MergeUserDefinedHydraulicBoundaryLocations(ObservableList targetWaterLevelCalculationsForUserDefinedTargetProbabilities, - ObservableList sourceWaterLevelCalculationsForUserDefinedTargetProbabilities, + private static void MergeUserDefinedHydraulicBoundaryLocations(ObservableList targetCalculationsForUserDefinedTargetProbabilities, + ObservableList sourceCalculationsForUserDefinedTargetProbabilities, List changedObjects, ObservableList hydraulicBoundaryLocations) { - HydraulicBoundaryLocationCalculationsForTargetProbability[] waterLevelProbabilitiesToMerge = sourceWaterLevelCalculationsForUserDefinedTargetProbabilities.Where(stp => targetWaterLevelCalculationsForUserDefinedTargetProbabilities - .Select(c => c.TargetProbability) - .Contains(stp.TargetProbability)).ToArray(); + HydraulicBoundaryLocationCalculationsForTargetProbability[] ProbabilitiesToMerge() => sourceCalculationsForUserDefinedTargetProbabilities.Where(stp => targetCalculationsForUserDefinedTargetProbabilities + .Select(c => c.TargetProbability) + .Contains(stp.TargetProbability)) + .ToArray(); - MergeProbabilities(targetWaterLevelCalculationsForUserDefinedTargetProbabilities, changedObjects, waterLevelProbabilitiesToMerge); - IEnumerable uniqueWaterLevelSourceProbabilities = sourceWaterLevelCalculationsForUserDefinedTargetProbabilities.Except(waterLevelProbabilitiesToMerge); - MergeUniqueProbabilities(targetWaterLevelCalculationsForUserDefinedTargetProbabilities, uniqueWaterLevelSourceProbabilities, hydraulicBoundaryLocations); + MergeProbabilities(targetCalculationsForUserDefinedTargetProbabilities, changedObjects, ProbabilitiesToMerge()); + MergeUniqueProbabilities(targetCalculationsForUserDefinedTargetProbabilities, () => sourceCalculationsForUserDefinedTargetProbabilities.Except(ProbabilitiesToMerge()), hydraulicBoundaryLocations); } - private static void MergeProbabilities(IEnumerable userDefinedTargetProbabilities, List changedObjects, HydraulicBoundaryLocationCalculationsForTargetProbability[] probabilitiesToMerge) + private static void MergeProbabilities(ObservableList userDefinedTargetProbabilities, List changedObjects, HydraulicBoundaryLocationCalculationsForTargetProbability[] probabilitiesToMerge) { foreach (HydraulicBoundaryLocationCalculationsForTargetProbability sourceProbability in probabilitiesToMerge) { @@ -131,9 +131,9 @@ } } - private static void MergeUniqueProbabilities(ObservableList userDefinedTargetProbabilities, IEnumerable targetProbabilities, ObservableList hydraulicBoundaryLocations) + private static void MergeUniqueProbabilities(ObservableList userDefinedTargetProbabilities, Func> getTargetProbabilities, ObservableList hydraulicBoundaryLocations) { - foreach (HydraulicBoundaryLocationCalculationsForTargetProbability targetProbability in targetProbabilities) + foreach (HydraulicBoundaryLocationCalculationsForTargetProbability targetProbability in getTargetProbabilities()) { var newTargetProbability = new HydraulicBoundaryLocationCalculationsForTargetProbability {