Index: Ringtoets/Integration/src/Ringtoets.Integration.Service/DesignWaterLevelCalculationService.cs
===================================================================
diff -u -re88fa1dfcf62085f7fabc453b73dbc8ac3ff9223 -r3d9b418d483c122040e11a7e074d666c64e9d7b5
--- Ringtoets/Integration/src/Ringtoets.Integration.Service/DesignWaterLevelCalculationService.cs (.../DesignWaterLevelCalculationService.cs) (revision e88fa1dfcf62085f7fabc453b73dbc8ac3ff9223)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Service/DesignWaterLevelCalculationService.cs (.../DesignWaterLevelCalculationService.cs) (revision 3d9b418d483c122040e11a7e074d666c64e9d7b5)
@@ -20,11 +20,13 @@
// All rights reserved.
using System.IO;
+using log4net;
using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Common.Service;
using Ringtoets.HydraRing.Calculation.Data;
using Ringtoets.HydraRing.Calculation.Data.Input.Hydraulics;
using Ringtoets.HydraRing.Calculation.Data.Output;
+using Ringtoets.HydraRing.Calculation.Parsers;
using Ringtoets.HydraRing.Calculation.Services;
using Ringtoets.HydraRing.Data;
using Ringtoets.HydraRing.IO;
@@ -38,8 +40,10 @@
///
/// Service that provides methods for performing Hydra-Ring calculations for design water level.
///
- internal static class DesignWaterLevelCalculationService
+ internal static class DesignWaterLevelCalculationService
{
+ private static readonly ILog log = LogManager.GetLogger(typeof(DesignWaterLevelCalculationService));
+
///
/// Performs validation over the values on the given . Error information is logged during
/// the execution of the operation.
@@ -79,12 +83,34 @@
{
var hlcdDirectory = Path.GetDirectoryName(hydraulicBoundaryDatabase.FilePath);
var input = CreateInput(assessmentSection, hydraulicBoundaryLocation);
+ var targetProbabilityCalculationParser = new TargetProbabilityCalculationParser();
- return CalculationServiceHelper.PerformCalculation(hydraulicBoundaryLocation.Id.ToString(),
- () => HydraRingCalculationService.PerformCalculation(hlcdDirectory, ringId, HydraRingTimeIntegrationSchemeType.FerryBorgesCastanheta, HydraRingUncertaintiesType.All, input),
- Resources.DesignWaterLevelCalculationService_Calculate_Error_in_design_water_level_0_calculation);
+ CalculationServiceHelper.PerformCalculation(
+ hydraulicBoundaryLocation.Id.ToString(),
+ () =>
+ {
+ HydraRingCalculationService.PerformCalculation(
+ hlcdDirectory,
+ ringId,
+ HydraRingTimeIntegrationSchemeType.FerryBorgesCastanheta,
+ HydraRingUncertaintiesType.All,
+ input,
+ new[] { targetProbabilityCalculationParser });
+
+ VerifyOutput(targetProbabilityCalculationParser.Output, hydraulicBoundaryLocation.Id.ToString());
+ });
+
+ return targetProbabilityCalculationParser.Output;
}
+ private static void VerifyOutput(TargetProbabilityCalculationOutput output, string name)
+ {
+ if (output == null)
+ {
+ log.ErrorFormat(Resources.DesignWaterLevelCalculationService_Calculate_Error_in_design_water_level_0_calculation, name);
+ }
+ }
+
private static AssessmentLevelCalculationInput CreateInput(IAssessmentSection assessmentSection, HydraulicBoundaryLocation hydraulicBoundaryLocation)
{
return new AssessmentLevelCalculationInput(1, hydraulicBoundaryLocation.Id, assessmentSection.FailureMechanismContribution.Norm);