Index: Ringtoets/Common/src/Ringtoets.Common.Service/Structures/StructuresCalculationServiceBase.cs
===================================================================
diff -u -r7371a70ed0751d341d41a7b951b780d286f83791 -rf8c28b3b04cdabb62ea37772efcb1f4ebbbf2b9e
--- Ringtoets/Common/src/Ringtoets.Common.Service/Structures/StructuresCalculationServiceBase.cs (.../StructuresCalculationServiceBase.cs) (revision 7371a70ed0751d341d41a7b951b780d286f83791)
+++ Ringtoets/Common/src/Ringtoets.Common.Service/Structures/StructuresCalculationServiceBase.cs (.../StructuresCalculationServiceBase.cs) (revision f8c28b3b04cdabb62ea37772efcb1f4ebbbf2b9e)
@@ -29,6 +29,7 @@
using Ringtoets.Common.Data;
using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Common.Data.Exceptions;
+using Ringtoets.Common.Data.Hydraulics;
using Ringtoets.Common.Data.IllustrationPoints;
using Ringtoets.Common.Data.Probability;
using Ringtoets.Common.Data.Structures;
@@ -125,8 +126,10 @@
/// The norm used in the calculation.
/// The contribution used in the calculation.
/// The path which points to the hydraulic boundary database file.
- /// Thrown when or
- /// is null.
+ /// The preprocessor directory.
+ /// Preprocessing is disabled when equals .
+ /// Thrown when , ,
+ /// or is null.
/// Thrown when the
/// contains invalid characters.
/// Thrown when an unexpected
@@ -144,7 +147,8 @@
double lengthEffectN,
double norm,
double contribution,
- string hydraulicBoundaryDatabaseFilePath)
+ string hydraulicBoundaryDatabaseFilePath,
+ string preprocessorDirectory)
{
if (calculation == null)
{
@@ -155,10 +159,10 @@
throw new ArgumentNullException(nameof(generalInput));
}
- TCalculationInput input = CreateInput(calculation.InputParameters, generalInput, hydraulicBoundaryDatabaseFilePath);
+ TCalculationInput input = CreateInput(calculation.InputParameters, generalInput, hydraulicBoundaryDatabaseFilePath, !string.IsNullOrEmpty(preprocessorDirectory));
string hlcdDirectory = Path.GetDirectoryName(hydraulicBoundaryDatabaseFilePath);
- calculator = HydraRingCalculatorFactory.Instance.CreateStructuresCalculator(hlcdDirectory);
+ calculator = HydraRingCalculatorFactory.Instance.CreateStructuresCalculator(hlcdDirectory, preprocessorDirectory);
string calculationName = calculation.Name;
CalculationServiceHelper.LogCalculationBegin();
@@ -219,6 +223,7 @@
/// The structure input to create the calculation input for.
/// The that is used in the calculation.
/// The path to the hydraulic boundary database file.
+ /// Indicator whether to use the preprocessor in the calculation.
/// A .
/// Thrown when the
/// contains invalid characters.
@@ -234,7 +239,8 @@
///
protected abstract TCalculationInput CreateInput(TStructureInput structureInput,
TGeneralInput generalInput,
- string hydraulicBoundaryDatabaseFilePath);
+ string hydraulicBoundaryDatabaseFilePath,
+ bool usePreprocessor);
///
/// Performs a structures calculation.
@@ -333,10 +339,20 @@
{
var validationResults = new List();
- string validationProblem = HydraulicDatabaseHelper.ValidatePathForCalculation(assessmentSection.HydraulicBoundaryDatabase.FilePath);
- if (!string.IsNullOrEmpty(validationProblem))
+ string databaseFilePathValidationProblem = HydraulicBoundaryDatabaseHelper.ValidatePathForCalculation(assessmentSection.HydraulicBoundaryDatabase.FilePath);
+ if (!string.IsNullOrEmpty(databaseFilePathValidationProblem))
{
- validationResults.Add(validationProblem);
+ validationResults.Add(databaseFilePathValidationProblem);
+ }
+
+ string preprocessorDirectoryValidationProblem = HydraulicBoundaryDatabaseHelper.ValidatePreprocessorDirectory(assessmentSection.HydraulicBoundaryDatabase.EffectivePreprocessorDirectory());
+ if (!string.IsNullOrEmpty(preprocessorDirectoryValidationProblem))
+ {
+ validationResults.Add(preprocessorDirectoryValidationProblem);
+ }
+
+ if (validationResults.Any())
+ {
return validationResults.ToArray();
}