Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresDataSynchronizationService.cs =================================================================== diff -u -re182f6f394aa75e739467a77e7bcacd9a8b25429 -rce9e1d476f00cfb42ce2a8ab6c762baf5abfd97b --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresDataSynchronizationService.cs (.../ClosingStructuresDataSynchronizationService.cs) (revision e182f6f394aa75e739467a77e7bcacd9a8b25429) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresDataSynchronizationService.cs (.../ClosingStructuresDataSynchronizationService.cs) (revision ce9e1d476f00cfb42ce2a8ab6c762baf5abfd97b) @@ -25,6 +25,7 @@ using System.Linq; using Core.Common.Base; using Ringtoets.ClosingStructures.Data; +using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.Hydraulics; using Ringtoets.Common.Data.Structures; using Ringtoets.Common.Service; @@ -89,29 +90,37 @@ /// 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) + /// The results of the clear action. + /// Thrown when + /// is null. + public static ClearResults ClearReferenceLineDependentData(ClosingStructuresFailureMechanism failureMechanism) { if (failureMechanism == null) { throw new ArgumentNullException("failureMechanism"); } - var observables = new Collection(); + var changedObjects = new Collection(); + var removedObjects = failureMechanism.Sections.OfType() + .Concat(failureMechanism.SectionResults) + .Concat(failureMechanism.CalculationsGroup.GetAllChildrenRecursive()) + .Concat(failureMechanism.ForeshoreProfiles) + .Concat(failureMechanism.ClosingStructures) + .ToArray(); failureMechanism.ClearAllSections(); - observables.Add(failureMechanism); + changedObjects.Add(failureMechanism); failureMechanism.CalculationsGroup.Children.Clear(); - observables.Add(failureMechanism.CalculationsGroup); + changedObjects.Add(failureMechanism.CalculationsGroup); failureMechanism.ForeshoreProfiles.Clear(); - observables.Add(failureMechanism.ForeshoreProfiles); + changedObjects.Add(failureMechanism.ForeshoreProfiles); failureMechanism.ClosingStructures.Clear(); - observables.Add(failureMechanism.ClosingStructures); + changedObjects.Add(failureMechanism.ClosingStructures); - return observables; + return new ClearResults(changedObjects, removedObjects); } ///