Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/StabilityStoneCoverDataSynchronizationService.cs =================================================================== diff -u -rc964c048005d93b097a1e6a817dace95b293040f -r7618e47c7ff0d09102d56e2c25545f57a4269352 --- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/StabilityStoneCoverDataSynchronizationService.cs (.../StabilityStoneCoverDataSynchronizationService.cs) (revision c964c048005d93b097a1e6a817dace95b293040f) +++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Service/StabilityStoneCoverDataSynchronizationService.cs (.../StabilityStoneCoverDataSynchronizationService.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.HydraRing.Data; +using Ringtoets.Revetment.Data; using Ringtoets.StabilityStoneCover.Data; namespace Ringtoets.StabilityStoneCover.Service @@ -40,16 +40,25 @@ /// /// The /// to clear the output for. + /// All objects that have been changed. /// Thrown when /// is null. - public static void ClearWaveConditionsCalculationOutput(StabilityStoneCoverWaveConditionsCalculation calculation) + public static IEnumerable ClearWaveConditionsCalculationOutput(StabilityStoneCoverWaveConditionsCalculation calculation) { if (calculation == null) { throw new ArgumentNullException("calculation"); } - calculation.Output = null; + if (calculation.HasOutput) + { + calculation.ClearOutput(); + return new[] + { + calculation + }; + } + return Enumerable.Empty(); } /// @@ -62,7 +71,7 @@ /// removing data. /// Thrown when /// is null. - public static IEnumerable ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations( + public static IEnumerable ClearAllWaveConditionsCalculationOutputAndHydraulicBoundaryLocations( StabilityStoneCoverFailureMechanism failureMechanism) { if (failureMechanism == null) @@ -74,20 +83,9 @@ foreach (var calculation in failureMechanism.Calculations.Cast()) { - var calculationChanged = false; - - if (calculation.HasOutput) - { - ClearWaveConditionsCalculationOutput(calculation); - calculationChanged = true; - } - - if (calculation.InputParameters.HydraulicBoundaryLocation != null) - { - ClearHydraulicBoundaryLocation(calculation); - calculationChanged = true; - } - + bool calculationChanged = ClearWaveConditionsCalculationOutput(calculation) + .Concat(ClearHydraulicBoundaryLocation(calculation.InputParameters)) + .Any(); if (calculationChanged) { affectedItems.Add(calculation); @@ -106,21 +104,17 @@ /// clearing the output. /// Thrown when /// is null. - public static IEnumerable ClearAllWaveConditionsCalculationOutput(StabilityStoneCoverFailureMechanism failureMechanism) + public static IEnumerable ClearAllWaveConditionsCalculationOutput(StabilityStoneCoverFailureMechanism failureMechanism) { if (failureMechanism == null) { throw new ArgumentNullException("failureMechanism"); } - var affectedItems = failureMechanism.Calculations - .Cast() - .Where(c => c.HasOutput) - .ToArray(); - - affectedItems.ForEachElementDo(ClearWaveConditionsCalculationOutput); - - return affectedItems; + return failureMechanism.Calculations + .Cast() + .SelectMany(ClearWaveConditionsCalculationOutput) + .ToArray(); } /// @@ -151,9 +145,17 @@ return observables; } - private static void ClearHydraulicBoundaryLocation(StabilityStoneCoverWaveConditionsCalculation calculation) + private static IEnumerable ClearHydraulicBoundaryLocation(WaveConditionsInput input) { - calculation.InputParameters.HydraulicBoundaryLocation = null; + if (input.HydraulicBoundaryLocation != null) + { + input.HydraulicBoundaryLocation = null; + return new[] + { + input + }; + } + return Enumerable.Empty(); } } } \ No newline at end of file