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