Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/StabilityStoneCoverDataSynchronizationService.cs =================================================================== diff -u -re182f6f394aa75e739467a77e7bcacd9a8b25429 -rce9e1d476f00cfb42ce2a8ab6c762baf5abfd97b --- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/StabilityStoneCoverDataSynchronizationService.cs (.../StabilityStoneCoverDataSynchronizationService.cs) (revision e182f6f394aa75e739467a77e7bcacd9a8b25429) +++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/StabilityStoneCoverDataSynchronizationService.cs (.../StabilityStoneCoverDataSynchronizationService.cs) (revision ce9e1d476f00cfb42ce2a8ab6c762baf5abfd97b) @@ -23,7 +23,9 @@ using System.Collections.Generic; using System.Linq; using Core.Common.Base; +using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.Hydraulics; +using Ringtoets.Common.Service; using Ringtoets.Revetment.Data; using Ringtoets.StabilityStoneCover.Data; @@ -113,28 +115,33 @@ /// 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. + /// The results of the clear action. /// Thrown when /// is null. - public static IEnumerable ClearReferenceLineDependentData(StabilityStoneCoverFailureMechanism failureMechanism) + public static ClearResults ClearReferenceLineDependentData(StabilityStoneCoverFailureMechanism failureMechanism) { if (failureMechanism == null) { throw new ArgumentNullException("failureMechanism"); } - var observables = new List(); + var changedObjects = new List(); + var removedObjects = failureMechanism.Sections.OfType() + .Concat(failureMechanism.SectionResults) + .Concat(failureMechanism.WaveConditionsCalculationGroup.GetAllChildrenRecursive()) + .Concat(failureMechanism.ForeshoreProfiles) + .ToArray(); failureMechanism.ClearAllSections(); - observables.Add(failureMechanism); + changedObjects.Add(failureMechanism); failureMechanism.WaveConditionsCalculationGroup.Children.Clear(); - observables.Add(failureMechanism.WaveConditionsCalculationGroup); + changedObjects.Add(failureMechanism.WaveConditionsCalculationGroup); failureMechanism.ForeshoreProfiles.Clear(); - observables.Add(failureMechanism.ForeshoreProfiles); + changedObjects.Add(failureMechanism.ForeshoreProfiles); - return observables; + return new ClearResults(changedObjects, removedObjects); } private static IEnumerable ClearHydraulicBoundaryLocation(WaveConditionsInput input)