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); } } }