Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/StabilityPointStructuresDataSynchronizationService.cs =================================================================== diff -u -rc964c048005d93b097a1e6a817dace95b293040f -r7618e47c7ff0d09102d56e2c25545f57a4269352 --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/StabilityPointStructuresDataSynchronizationService.cs (.../StabilityPointStructuresDataSynchronizationService.cs) (revision c964c048005d93b097a1e6a817dace95b293040f) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.Service/StabilityPointStructuresDataSynchronizationService.cs (.../StabilityPointStructuresDataSynchronizationService.cs) (revision 7618e47c7ff0d09102d56e2c25545f57a4269352) @@ -24,8 +24,8 @@ using System.Collections.ObjectModel; using System.Linq; using Core.Common.Base; -using Core.Common.Utils.Extensions; using Ringtoets.Common.Data.Structures; +using Ringtoets.Common.Service; using Ringtoets.HydraRing.Data; using Ringtoets.StabilityPointStructures.Data; @@ -45,22 +45,18 @@ /// clearing the output. /// Thrown when /// is null. - public static IEnumerable> ClearAllCalculationOutput( + public static IEnumerable ClearAllCalculationOutput( StabilityPointStructuresFailureMechanism 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(); } /// @@ -85,20 +81,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); @@ -137,9 +122,17 @@ return observables; } - private static void ClearHydraulicBoundaryLocation(StructuresCalculation calculation) + private static IEnumerable ClearHydraulicBoundaryLocation(StabilityPointStructuresInput input) { - calculation.InputParameters.HydraulicBoundaryLocation = null; + if (input.HydraulicBoundaryLocation != null) + { + input.HydraulicBoundaryLocation = null; + return new[] + { + input + }; + } + return Enumerable.Empty(); } } } \ No newline at end of file