Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/StabilityPointStructuresDataSynchronizationService.cs =================================================================== diff -u -r716528adfed212743b359ecaf540a1027dbceb65 -rc964c048005d93b097a1e6a817dace95b293040f --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/StabilityPointStructuresDataSynchronizationService.cs (.../StabilityPointStructuresDataSynchronizationService.cs) (revision 716528adfed212743b359ecaf540a1027dbceb65) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/StabilityPointStructuresDataSynchronizationService.cs (.../StabilityPointStructuresDataSynchronizationService.cs) (revision c964c048005d93b097a1e6a817dace95b293040f) @@ -23,10 +23,11 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; +using Core.Common.Base; using Core.Common.Utils.Extensions; -using Ringtoets.StabilityPointStructures.Data; using Ringtoets.Common.Data.Structures; using Ringtoets.HydraRing.Data; +using Ringtoets.StabilityPointStructures.Data; namespace Ringtoets.StabilityPointStructures.Service { @@ -61,7 +62,7 @@ return affectedItems; } - + /// /// Clears the and output for all the calculations /// in the . @@ -107,6 +108,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(StabilityPointStructuresFailureMechanism 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.StabilityPointStructures.Clear(); + observables.Add(failureMechanism.StabilityPointStructures); + + return observables; + } + private static void ClearHydraulicBoundaryLocation(StructuresCalculation calculation) { calculation.InputParameters.HydraulicBoundaryLocation = null;