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