Index: Ringtoets/Integration/src/Ringtoets.Integration.Service/DesignWaterLevelCalculationActivity.cs
===================================================================
diff -u -r0a51f20ac93373a43f79bb4c6327bce1d46545c6 -r6ccc539ce58e63f0e0fbff0da189c87b65146129
--- Ringtoets/Integration/src/Ringtoets.Integration.Service/DesignWaterLevelCalculationActivity.cs (.../DesignWaterLevelCalculationActivity.cs) (revision 0a51f20ac93373a43f79bb4c6327bce1d46545c6)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Service/DesignWaterLevelCalculationActivity.cs (.../DesignWaterLevelCalculationActivity.cs) (revision 6ccc539ce58e63f0e0fbff0da189c87b65146129)
@@ -21,8 +21,8 @@
using Core.Common.Base.Service;
using Ringtoets.Common.Data.AssessmentSection;
+using Ringtoets.HydraRing.Calculation.Activities;
using Ringtoets.HydraRing.Calculation.Data.Output;
-using Ringtoets.HydraRing.Calculation.Services;
using Ringtoets.HydraRing.Data;
using Ringtoets.Integration.Service.Properties;
@@ -31,11 +31,10 @@
///
/// for running a design water level calculation.
///
- public class DesignWaterLevelCalculationActivity : Activity
+ public class DesignWaterLevelCalculationActivity : HydraRingActivity
{
private readonly IAssessmentSection assessmentSection;
private readonly HydraulicBoundaryLocation hydraulicBoundaryLocation;
- private TargetProbabilityCalculationOutput output;
public override string Name
{
@@ -58,38 +57,17 @@
protected override void OnRun()
{
- if (!DesignWaterLevelCalculationService.Validate(assessmentSection.HydraulicBoundaryDatabase, hydraulicBoundaryLocation))
- {
- State = ActivityState.Failed;
- return;
- }
-
- LogMessages.Clear();
- hydraulicBoundaryLocation.DesignWaterLevel = double.NaN;
-
- output = DesignWaterLevelCalculationService.Calculate(assessmentSection,
- assessmentSection.HydraulicBoundaryDatabase,
- hydraulicBoundaryLocation,
- assessmentSection.Name); // TODO: Provide name of reference line instead
-
- if (output == null)
- {
- State = ActivityState.Failed;
- }
+ PerformRun(() => DesignWaterLevelCalculationService.Validate(assessmentSection.HydraulicBoundaryDatabase, hydraulicBoundaryLocation),
+ () => hydraulicBoundaryLocation.DesignWaterLevel = double.NaN,
+ () => DesignWaterLevelCalculationService.Calculate(assessmentSection,
+ assessmentSection.HydraulicBoundaryDatabase,
+ hydraulicBoundaryLocation,
+ assessmentSection.Name)); // TODO: Provide name of reference line instead
}
- protected override void OnCancel()
- {
- HydraRingCalculationService.CancelRunningCalculation();
- }
-
protected override void OnFinish()
{
- if (State == ActivityState.Executed)
- {
- hydraulicBoundaryLocation.DesignWaterLevel = output.Result;
- hydraulicBoundaryLocation.NotifyObservers();
- }
+ PerformFinish(() => hydraulicBoundaryLocation.DesignWaterLevel = Output.Result, hydraulicBoundaryLocation);
}
}
}