Index: Riskeer/Integration/src/Riskeer.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs =================================================================== diff -u -rf39fdd0b08b51e64d5abadc8d154fa89481fe634 -r43d8fca023bbe4fd07724d321cd37c10dd324d25 --- Riskeer/Integration/src/Riskeer.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs (.../AssessmentSectionMergeHandler.cs) (revision f39fdd0b08b51e64d5abadc8d154fa89481fe634) +++ Riskeer/Integration/src/Riskeer.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs (.../AssessmentSectionMergeHandler.cs) (revision 43d8fca023bbe4fd07724d321cd37c10dd324d25) @@ -108,30 +108,32 @@ return changedObjects; } - private static void MergeUserDefinedHydraulicBoundaryLocations(ObservableList targetCalculationsForUserDefinedTargetProbabilities, - ObservableList sourceCalculationsForUserDefinedTargetProbabilities, - List changedObjects, ObservableList hydraulicBoundaryLocations) + private static void MergeUserDefinedHydraulicBoundaryLocations(ObservableList targetProbabilities, + IEnumerable sourceProbabilities, + List changedObjects, IEnumerable hydraulicBoundaryLocations) { - HydraulicBoundaryLocationCalculationsForTargetProbability[] probabilitiesToMerge = sourceCalculationsForUserDefinedTargetProbabilities.Where(stp => targetCalculationsForUserDefinedTargetProbabilities - .Select(c => c.TargetProbability) - .Contains(stp.TargetProbability)) - .ToArray(); + HydraulicBoundaryLocationCalculationsForTargetProbability[] probabilitiesToMerge = sourceProbabilities.Where(stp => targetProbabilities + .Select(c => c.TargetProbability) + .Contains(stp.TargetProbability)) + .ToArray(); - MergeProbabilities(targetCalculationsForUserDefinedTargetProbabilities, changedObjects, probabilitiesToMerge); - MergeUniqueProbabilities(targetCalculationsForUserDefinedTargetProbabilities, () => sourceCalculationsForUserDefinedTargetProbabilities.Except(probabilitiesToMerge), hydraulicBoundaryLocations); + MergeProbabilities(targetProbabilities, changedObjects, probabilitiesToMerge); + MergeUniqueProbabilities(targetProbabilities, () => sourceProbabilities.Except(probabilitiesToMerge), hydraulicBoundaryLocations); } private static void MergeProbabilities(ObservableList userDefinedTargetProbabilities, List changedObjects, HydraulicBoundaryLocationCalculationsForTargetProbability[] probabilitiesToMerge) { - foreach (HydraulicBoundaryLocationCalculationsForTargetProbability sourceProbability in probabilitiesToMerge) + foreach (HydraulicBoundaryLocationCalculationsForTargetProbability probabilityToMerge in probabilitiesToMerge) { - HydraulicBoundaryLocationCalculationsForTargetProbability targetProbability = userDefinedTargetProbabilities.First(c => c.TargetProbability.Equals(sourceProbability.TargetProbability)); + HydraulicBoundaryLocationCalculationsForTargetProbability targetProbability = userDefinedTargetProbabilities.First( + c => c.TargetProbability.Equals(probabilityToMerge.TargetProbability)); - changedObjects.AddRange(MergeHydraulicBoundaryLocationCalculations(targetProbability.HydraulicBoundaryLocationCalculations, sourceProbability.HydraulicBoundaryLocationCalculations)); + changedObjects.AddRange(MergeHydraulicBoundaryLocationCalculations(targetProbability.HydraulicBoundaryLocationCalculations, + probabilityToMerge.HydraulicBoundaryLocationCalculations)); } } - private static void MergeUniqueProbabilities(ObservableList userDefinedTargetProbabilities, Func> getTargetProbabilities, ObservableList hydraulicBoundaryLocations) + private static void MergeUniqueProbabilities(ObservableList userDefinedTargetProbabilities, Func> getTargetProbabilities, IEnumerable hydraulicBoundaryLocations) { foreach (HydraulicBoundaryLocationCalculationsForTargetProbability targetProbability in getTargetProbabilities()) { @@ -140,9 +142,11 @@ TargetProbability = targetProbability.TargetProbability }; - newTargetProbability.HydraulicBoundaryLocationCalculations.AddRange(targetProbability.HydraulicBoundaryLocationCalculations - .Select(calculation => new HydraulicBoundaryLocationCalculation(GetHydraulicBoundaryLocation(calculation.HydraulicBoundaryLocation, hydraulicBoundaryLocations))) - .ToArray()); + newTargetProbability.HydraulicBoundaryLocationCalculations.AddRange( + targetProbability.HydraulicBoundaryLocationCalculations + .Select(calculation => new HydraulicBoundaryLocationCalculation(GetHydraulicBoundaryLocation( + calculation.HydraulicBoundaryLocation, hydraulicBoundaryLocations))) + .ToArray()); userDefinedTargetProbabilities.Add(newTargetProbability); }