Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresDataSynchronizationService.cs =================================================================== diff -u -rf1fa2338dda2747f6bb70e82b4527f7b5f1708bf -rc964c048005d93b097a1e6a817dace95b293040f --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresDataSynchronizationService.cs (.../ClosingStructuresDataSynchronizationService.cs) (revision f1fa2338dda2747f6bb70e82b4527f7b5f1708bf) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresDataSynchronizationService.cs (.../ClosingStructuresDataSynchronizationService.cs) (revision c964c048005d93b097a1e6a817dace95b293040f) @@ -23,6 +23,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; +using Core.Common.Base; using Core.Common.Utils.Extensions; using Ringtoets.ClosingStructures.Data; using Ringtoets.Common.Data.Structures; @@ -60,7 +61,7 @@ return affectedItems; } - + /// /// Clears the and output for all the calculations /// in the . @@ -105,6 +106,35 @@ return affectedItems; } + /// + /// Clears all data dependent, either directly or indirectly, on the parent reference line. + /// + /// The failure mechanism to be cleared. + /// All objects that have been changed. + public static IEnumerable ClearReferenceLineDependentData(ClosingStructuresFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException("failureMechanism"); + } + + var observables = new List(); + + failureMechanism.ClearAllSections(); + observables.Add(failureMechanism); + + failureMechanism.CalculationsGroup.Children.Clear(); + observables.Add(failureMechanism.CalculationsGroup); + + failureMechanism.ForeshoreProfiles.Clear(); + observables.Add(failureMechanism.ForeshoreProfiles); + + failureMechanism.ClosingStructures.Clear(); + observables.Add(failureMechanism.ClosingStructures); + + return observables; + } + private static void ClearHydraulicBoundaryLocation(StructuresCalculation calculation) { calculation.InputParameters.HydraulicBoundaryLocation = null;