Index: Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresDataSynchronizationService.cs =================================================================== diff -u -rc964c048005d93b097a1e6a817dace95b293040f -r7618e47c7ff0d09102d56e2c25545f57a4269352 --- Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresDataSynchronizationService.cs (.../ClosingStructuresDataSynchronizationService.cs) (revision c964c048005d93b097a1e6a817dace95b293040f) +++ Ringtoets/ClosingStructures/src/Ringtoets.ClosingStructures.Service/ClosingStructuresDataSynchronizationService.cs (.../ClosingStructuresDataSynchronizationService.cs) (revision 7618e47c7ff0d09102d56e2c25545f57a4269352) @@ -24,9 +24,9 @@ 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; +using Ringtoets.Common.Service; using Ringtoets.HydraRing.Data; namespace Ringtoets.ClosingStructures.Service @@ -45,21 +45,17 @@ /// clearing the output. /// Thrown when /// is null. - public static IEnumerable> ClearAllCalculationOutput(ClosingStructuresFailureMechanism failureMechanism) + public static IEnumerable ClearAllCalculationOutput(ClosingStructuresFailureMechanism failureMechanism) { if (failureMechanism == null) { throw new ArgumentNullException("failureMechanism"); } - var affectedItems = failureMechanism.Calculations - .Cast>() - .Where(c => c.HasOutput) - .ToArray(); - - affectedItems.ForEachElementDo(item => item.ClearOutput()); - - return affectedItems; + return failureMechanism.Calculations + .Cast>() + .SelectMany(RingtoetsCommonDataSynchronizationService.ClearCalculationOutput) + .ToArray(); } /// @@ -83,20 +79,9 @@ foreach (var calculation in failureMechanism.Calculations.Cast>()) { - var calculationChanged = false; - - if (calculation.HasOutput) - { - calculation.ClearOutput(); - calculationChanged = true; - } - - if (calculation.InputParameters.HydraulicBoundaryLocation != null) - { - ClearHydraulicBoundaryLocation(calculation); - calculationChanged = true; - } - + var calculationChanged = RingtoetsCommonDataSynchronizationService.ClearCalculationOutput(calculation) + .Concat(ClearHydraulicBoundaryLocation(calculation.InputParameters)) + .Any(); if (calculationChanged) { affectedItems.Add(calculation); @@ -118,7 +103,7 @@ throw new ArgumentNullException("failureMechanism"); } - var observables = new List(); + var observables = new Collection(); failureMechanism.ClearAllSections(); observables.Add(failureMechanism); @@ -135,9 +120,17 @@ return observables; } - private static void ClearHydraulicBoundaryLocation(StructuresCalculation calculation) + private static IEnumerable ClearHydraulicBoundaryLocation(ClosingStructuresInput input) { - calculation.InputParameters.HydraulicBoundaryLocation = null; + if (input.HydraulicBoundaryLocation != null) + { + input.HydraulicBoundaryLocation = null; + return new[] + { + input + }; + } + return Enumerable.Empty(); } } } \ No newline at end of file