Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs =================================================================== diff -u -r0a3fd57580aff0d6487e195c67f315f628b1ced4 -r0e8bf535243adfcc29b018dfc06609dcea1c546f --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs (.../AssessmentSectionMergeHandler.cs) (revision 0a3fd57580aff0d6487e195c67f315f628b1ced4) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs (.../AssessmentSectionMergeHandler.cs) (revision 0e8bf535243adfcc29b018dfc06609dcea1c546f) @@ -21,8 +21,10 @@ using System; using System.Collections.Generic; +using System.Linq; using Core.Common.Gui.Commands; using Ringtoets.Common.Data.FailureMechanism; +using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Integration.Data; namespace Ringtoets.Integration.Plugin.Merge @@ -70,8 +72,37 @@ } BeforeMerge(targetAssessmentSection); + MergeHydraulicBoundaryLocations(targetAssessmentSection, sourceAssessmentSection); } + private void MergeHydraulicBoundaryLocations(AssessmentSection targetAssessmentSection, AssessmentSection sourceAssessmentSection) + { + for (var i = 0; i < targetAssessmentSection.HydraulicBoundaryDatabase.Locations.Count; i++) + { + HydraulicBoundaryLocationCalculation targetCalculation = targetAssessmentSection.WaterLevelCalculationsForFactorizedSignalingNorm.ElementAt(i); + HydraulicBoundaryLocationCalculation sourceCalculation = sourceAssessmentSection.WaterLevelCalculationsForFactorizedSignalingNorm.ElementAt(i); + + if (ShouldMerge(targetCalculation, sourceCalculation)) + { + targetCalculation.Output = sourceCalculation.Output; + } + } + } + + private bool ShouldMerge(HydraulicBoundaryLocationCalculation targetCalculation, HydraulicBoundaryLocationCalculation sourceCalculation) + { + bool targetCalculationHasOutput = targetCalculation.HasOutput; + bool sourceCalculationHasOutput = sourceCalculation.HasOutput; + + if (!targetCalculationHasOutput && !sourceCalculationHasOutput + || targetCalculationHasOutput && !sourceCalculationHasOutput) + { + return false; + } + + return true; + } + private void BeforeMerge(AssessmentSection assessmentSection) { viewCommands.RemoveAllViewsForItem(assessmentSection);