Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs =================================================================== diff -u -r0a684e8c46a9d375b887d84e777e5e80829308a7 -r9b5d6d80dc634b79b2f24cd3ed1ce9de366f9fac --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs (.../AssessmentSectionMergeHandler.cs) (revision 0a684e8c46a9d375b887d84e777e5e80829308a7) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/Merge/AssessmentSectionMergeHandler.cs (.../AssessmentSectionMergeHandler.cs) (revision 9b5d6d80dc634b79b2f24cd3ed1ce9de366f9fac) @@ -176,7 +176,7 @@ targetAssessmentSection, failureMechanism, (section, mechanism) => section.Piping = mechanism)) { - UpdateHydraulicBoundaryLocationReferences( + UpdateCalculationHydraulicBoundaryLocationReferences( targetAssessmentSection.Piping, hydraulicBoundaryLocations); continue; } @@ -185,7 +185,7 @@ targetAssessmentSection, failureMechanism, (section, mechanism) => section.GrassCoverErosionInwards = mechanism)) { - UpdateHydraulicBoundaryLocationReferences( + UpdateCalculationHydraulicBoundaryLocationReferences( targetAssessmentSection.GrassCoverErosionInwards, hydraulicBoundaryLocations); continue; } @@ -194,7 +194,7 @@ targetAssessmentSection, failureMechanism, (section, mechanism) => section.MacroStabilityInwards = mechanism)) { - UpdateHydraulicBoundaryLocationReferences( + UpdateCalculationHydraulicBoundaryLocationReferences( targetAssessmentSection.MacroStabilityInwards, hydraulicBoundaryLocations); continue; } @@ -217,7 +217,7 @@ targetAssessmentSection, failureMechanism, (section, mechanism) => section.StabilityStoneCover = mechanism)) { - UpdateHydraulicBoundaryLocationReferences( + UpdateCalculationHydraulicBoundaryLocationReferences( targetAssessmentSection.StabilityStoneCover, hydraulicBoundaryLocations); continue; } @@ -226,7 +226,7 @@ targetAssessmentSection, failureMechanism, (section, mechanism) => section.WaveImpactAsphaltCover = mechanism)) { - UpdateHydraulicBoundaryLocationReferences( + UpdateCalculationHydraulicBoundaryLocationReferences( targetAssessmentSection.WaveImpactAsphaltCover, hydraulicBoundaryLocations); continue; } @@ -242,7 +242,8 @@ targetAssessmentSection, failureMechanism, (section, mechanism) => section.GrassCoverErosionOutwards = mechanism)) { - UpdateHydraulicBoundaryLocationReferences( + UpdateLocationCalculationHydraulicBoundaryLocationReferences(targetAssessmentSection.GrassCoverErosionOutwards, hydraulicBoundaryLocations); + UpdateCalculationHydraulicBoundaryLocationReferences( targetAssessmentSection.GrassCoverErosionOutwards, hydraulicBoundaryLocations); continue; } @@ -265,7 +266,7 @@ targetAssessmentSection, failureMechanism, (section, mechanism) => section.HeightStructures = mechanism)) { - UpdateHydraulicBoundaryLocationReferences, HeightStructuresInput>( + UpdateCalculationHydraulicBoundaryLocationReferences, HeightStructuresInput>( targetAssessmentSection.HeightStructures, hydraulicBoundaryLocations); continue; } @@ -274,7 +275,7 @@ targetAssessmentSection, failureMechanism, (section, mechanism) => section.ClosingStructures = mechanism)) { - UpdateHydraulicBoundaryLocationReferences, ClosingStructuresInput>( + UpdateCalculationHydraulicBoundaryLocationReferences, ClosingStructuresInput>( targetAssessmentSection.ClosingStructures, hydraulicBoundaryLocations); continue; } @@ -290,7 +291,7 @@ targetAssessmentSection, failureMechanism, (section, mechanism) => section.StabilityPointStructures = mechanism)) { - UpdateHydraulicBoundaryLocationReferences, StabilityPointStructuresInput>( + UpdateCalculationHydraulicBoundaryLocationReferences, StabilityPointStructuresInput>( targetAssessmentSection.StabilityPointStructures, hydraulicBoundaryLocations); continue; } @@ -323,7 +324,7 @@ return false; } - private static void UpdateHydraulicBoundaryLocationReferences( + private static void UpdateCalculationHydraulicBoundaryLocationReferences( TFailureMechanism failureMechanism, IEnumerable locations) where TFailureMechanism : IFailureMechanism where TCalculation : ICalculation @@ -344,6 +345,38 @@ return locations.Single(l => l.Name == location.Name && l.Id == location.Id && l.Location.Equals(location.Location)); } + private static void UpdateLocationCalculationHydraulicBoundaryLocationReferences(GrassCoverErosionOutwardsFailureMechanism targetFailureMechanism, + IEnumerable locations) + { + HydraulicBoundaryLocationCalculation[] oldWaterLevelForMechanismSpecificFactorizedSignalingNorm = targetFailureMechanism.WaterLevelCalculationsForMechanismSpecificFactorizedSignalingNorm.ToArray(); + HydraulicBoundaryLocationCalculation[] oldWaterLevelForMechanismSpecificSignalingNorm = targetFailureMechanism.WaterLevelCalculationsForMechanismSpecificSignalingNorm.ToArray(); + HydraulicBoundaryLocationCalculation[] oldWaterLevelForMechanismSpecificLowerLimitNorm = targetFailureMechanism.WaterLevelCalculationsForMechanismSpecificLowerLimitNorm.ToArray(); + HydraulicBoundaryLocationCalculation[] oldWaveHeightForMechanismSpecificFactorizedSignalingNorm = targetFailureMechanism.WaveHeightCalculationsForMechanismSpecificFactorizedSignalingNorm.ToArray(); + HydraulicBoundaryLocationCalculation[] oldWaveHeightForMechanismSpecificSignalingNorm = targetFailureMechanism.WaveHeightCalculationsForMechanismSpecificSignalingNorm.ToArray(); + HydraulicBoundaryLocationCalculation[] oldWaveHeightForMechanismSpecificLowerLimitNorm = targetFailureMechanism.WaveHeightCalculationsForMechanismSpecificLowerLimitNorm.ToArray(); + targetFailureMechanism.SetHydraulicBoundaryLocationCalculations(locations); + + ReplaceCalculationData(oldWaterLevelForMechanismSpecificFactorizedSignalingNorm, targetFailureMechanism.WaterLevelCalculationsForMechanismSpecificFactorizedSignalingNorm); + ReplaceCalculationData(oldWaterLevelForMechanismSpecificSignalingNorm, targetFailureMechanism.WaterLevelCalculationsForMechanismSpecificSignalingNorm); + ReplaceCalculationData(oldWaterLevelForMechanismSpecificLowerLimitNorm, targetFailureMechanism.WaterLevelCalculationsForMechanismSpecificLowerLimitNorm); + + ReplaceCalculationData(oldWaveHeightForMechanismSpecificFactorizedSignalingNorm, targetFailureMechanism.WaveHeightCalculationsForMechanismSpecificFactorizedSignalingNorm); + ReplaceCalculationData(oldWaveHeightForMechanismSpecificSignalingNorm, targetFailureMechanism.WaveHeightCalculationsForMechanismSpecificSignalingNorm); + ReplaceCalculationData(oldWaveHeightForMechanismSpecificLowerLimitNorm, targetFailureMechanism.WaveHeightCalculationsForMechanismSpecificLowerLimitNorm); + } + + private static void ReplaceCalculationData(IEnumerable oldCalculations, IEnumerable newCalculations) + { + for (var i = 0; i < newCalculations.Count(); i++) + { + HydraulicBoundaryLocationCalculation newCalculation = newCalculations.ElementAt(i); + HydraulicBoundaryLocationCalculation oldCalculation = oldCalculations.ElementAt(i); + + newCalculation.InputParameters.ShouldIllustrationPointsBeCalculated = oldCalculation.InputParameters.ShouldIllustrationPointsBeCalculated; + newCalculation.Output = oldCalculation.Output; + } + } + #endregion } } \ No newline at end of file