Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/StabilityStoneCoverDataSynchronizationService.cs =================================================================== diff -u -r77ac74d895ded1f0d1f81a67b02a2f4d80299a3b -rc964c048005d93b097a1e6a817dace95b293040f --- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/StabilityStoneCoverDataSynchronizationService.cs (.../StabilityStoneCoverDataSynchronizationService.cs) (revision 77ac74d895ded1f0d1f81a67b02a2f4d80299a3b) +++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/StabilityStoneCoverDataSynchronizationService.cs (.../StabilityStoneCoverDataSynchronizationService.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.HydraRing.Data; using Ringtoets.StabilityStoneCover.Data; @@ -122,6 +123,34 @@ 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. + /// Thrown when + /// is null. + public static IEnumerable ClearReferenceLineDependentData(StabilityStoneCoverFailureMechanism failureMechanism) + { + if (failureMechanism == null) + { + throw new ArgumentNullException("failureMechanism"); + } + + var observables = new List(); + + failureMechanism.ClearAllSections(); + observables.Add(failureMechanism); + + failureMechanism.WaveConditionsCalculationGroup.Children.Clear(); + observables.Add(failureMechanism.WaveConditionsCalculationGroup); + + failureMechanism.ForeshoreProfiles.Clear(); + observables.Add(failureMechanism.ForeshoreProfiles); + + return observables; + } + private static void ClearHydraulicBoundaryLocation(StabilityStoneCoverWaveConditionsCalculation calculation) { calculation.InputParameters.HydraulicBoundaryLocation = null;