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