Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Service/TargetProbabilityCalculationActivity.cs =================================================================== diff -u -rf0b17fbeaae5235e062c016de9adf3c0c209720f -r45b46673706b2fa064e6078dd9a1bdb64109bb29 --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Service/TargetProbabilityCalculationActivity.cs (.../TargetProbabilityCalculationActivity.cs) (revision f0b17fbeaae5235e062c016de9adf3c0c209720f) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Service/TargetProbabilityCalculationActivity.cs (.../TargetProbabilityCalculationActivity.cs) (revision 45b46673706b2fa064e6078dd9a1bdb64109bb29) @@ -19,6 +19,7 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System; using Core.Common.Base.Service; using Ringtoets.HydraRing.Calculation.Data; using Ringtoets.HydraRing.Calculation.Data.Input; @@ -37,6 +38,7 @@ private readonly HydraRingTimeIntegrationSchemeType timeIntegrationSchemeType; private readonly HydraRingUncertaintiesType uncertaintiesType; private readonly TargetProbabilityCalculationInput targetProbabilityCalculationInput; + private readonly Action handleCalculationOutputAction; private TargetProbabilityCalculationOutput targetProbabilityCalculationOutput; /// @@ -48,20 +50,23 @@ /// The to use while executing the calculation. /// The to use while executing the calculation. /// The input of the calculation to perform. + /// The action to perform after the calculation is performed. public TargetProbabilityCalculationActivity( string name, string hlcdDirectory, string ringId, HydraRingTimeIntegrationSchemeType timeIntegrationSchemeType, HydraRingUncertaintiesType uncertaintiesType, - TargetProbabilityCalculationInput targetProbabilityCalculationInput) + TargetProbabilityCalculationInput targetProbabilityCalculationInput, + Action handleCalculationOutputAction) { this.name = name; this.hlcdDirectory = hlcdDirectory; this.ringId = ringId; this.timeIntegrationSchemeType = timeIntegrationSchemeType; this.uncertaintiesType = uncertaintiesType; this.targetProbabilityCalculationInput = targetProbabilityCalculationInput; + this.handleCalculationOutputAction = handleCalculationOutputAction; } public override string Name @@ -84,7 +89,10 @@ protected override void OnFinish() { - // TODO: Implement logic for correctly handling the targetProbabilityCalculationOutput + if (targetProbabilityCalculationOutput != null) + { + handleCalculationOutputAction(targetProbabilityCalculationOutput); + } } } } Index: Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs =================================================================== diff -u -r3a78d46ff29f71c0de1e46381ea3aed557903eec -r45b46673706b2fa064e6078dd9a1bdb64109bb29 --- Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision 3a78d46ff29f71c0de1e46381ea3aed557903eec) +++ Ringtoets/Integration/src/Ringtoets.Integration.Plugin/RingtoetsGuiPlugin.cs (.../RingtoetsGuiPlugin.cs) (revision 45b46673706b2fa064e6078dd9a1bdb64109bb29) @@ -447,12 +447,14 @@ (sender, args) => { var hlcdDirectory = Path.GetDirectoryName(nodeData.Parent.HydraulicBoundaryDatabase.FilePath); - var activities = nodeData.Parent.HydraulicBoundaryDatabase.Locations.Select(hbl => new TargetProbabilityCalculationActivity(string.Format(Resources.RingtoetsGuiPlugin_Calculate_assessment_level_for_location_0_, hbl.Id), - hlcdDirectory, - "", - HydraRingTimeIntegrationSchemeType.FBC, - HydraRingUncertaintiesType.All, - new AssessmentLevelCalculationInput((int) hbl.Id, nodeData.Parent.FailureMechanismContribution.Norm))); + var activities = nodeData.Parent.HydraulicBoundaryDatabase.Locations.Select(hbl => new TargetProbabilityCalculationActivity( + string.Format(Resources.RingtoetsGuiPlugin_Calculate_assessment_level_for_location_0_, hbl.Id), + hlcdDirectory, + "", + HydraRingTimeIntegrationSchemeType.FBC, + HydraRingUncertaintiesType.All, + new AssessmentLevelCalculationInput((int) hbl.Id, nodeData.Parent.FailureMechanismContribution.Norm), + output => hbl.DesignWaterLevel = output.Result)).ToList(); ActivityProgressDialogRunner.Run(Gui.MainWindow, activities); }