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