Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationService.cs
===================================================================
diff -u -r92210258706d0f57e05552037b676bd941a6fe19 -r75c87ba087fcb4bf89090d844455b215b25b4a75
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationService.cs (.../GrassCoverErosionInwardsCalculationService.cs) (revision 92210258706d0f57e05552037b676bd941a6fe19)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationService.cs (.../GrassCoverErosionInwardsCalculationService.cs) (revision 75c87ba087fcb4bf89090d844455b215b25b4a75)
@@ -21,26 +21,27 @@
using System;
using System.Collections.Generic;
-using System.ComponentModel;
using System.IO;
using System.Linq;
-using System.Security;
using Core.Common.Base.IO;
using Core.Common.Utils;
using log4net;
using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Common.Data.DikeProfiles;
+using Ringtoets.Common.Data.Exceptions;
using Ringtoets.Common.Data.Hydraulics;
+using Ringtoets.Common.Data.IllustrationPoints;
using Ringtoets.Common.IO.HydraRing;
using Ringtoets.Common.Service;
+using Ringtoets.Common.Service.IllustrationPoints;
using Ringtoets.Common.Service.ValidationRules;
using Ringtoets.GrassCoverErosionInwards.Data;
using Ringtoets.GrassCoverErosionInwards.Service.Properties;
using Ringtoets.HydraRing.Calculation.Calculator;
using Ringtoets.HydraRing.Calculation.Calculator.Factory;
-using Ringtoets.HydraRing.Calculation.Data.Input;
using Ringtoets.HydraRing.Calculation.Data.Input.Hydraulics;
using Ringtoets.HydraRing.Calculation.Data.Input.Overtopping;
+using Ringtoets.HydraRing.Calculation.Data.Output.IllustrationPoints;
using Ringtoets.HydraRing.Calculation.Exceptions;
using RingtoetsCommonServiceResources = Ringtoets.Common.Service.Properties.Resources;
using RingtoetsCommonForms = Ringtoets.Common.Forms.Properties.Resources;
@@ -176,6 +177,11 @@
hydraulicBoundaryDatabaseFilePath,
numberOfCalculators);
+ if (dikeHeightOutput != null && calculation.InputParameters.ShouldDikeHeightIllustrationPointsBeCalculated)
+ {
+ dikeHeightOutput.GeneralFaultTreeIllustrationPoint = ConvertIllustrationPointsResult(dikeHeightCalculator.IllustrationPointsResult, dikeHeightCalculator.IllustrationPointsParserErrorMessage);
+ }
+
if (canceled)
{
return;
@@ -187,20 +193,31 @@
failureMechanismContribution,
hydraulicBoundaryDatabaseFilePath,
numberOfCalculators);
+ if (overtoppingRateOutput != null && calculation.InputParameters.ShouldOvertoppingRateIllustrationPointsBeCalculated)
+ {
+ overtoppingRateOutput.GeneralFaultTreeIllustrationPoint = ConvertIllustrationPointsResult(overtoppingRateCalculator.IllustrationPointsResult, overtoppingRateCalculator.IllustrationPointsParserErrorMessage);
+ }
if (canceled)
{
return;
}
+ var overtoppingOutput = new GrassCoverErosionInwardsOvertoppingOutput(overtoppingCalculator.WaveHeight,
+ overtoppingCalculator.IsOvertoppingDominant,
+ ProbabilityAssessmentService.Calculate(
+ assessmentSection.FailureMechanismContribution.Norm,
+ failureMechanismContribution,
+ generalInput.N,
+ overtoppingCalculator.ExceedanceProbabilityBeta));
+
+ if (calculation.InputParameters.ShouldOvertoppingOutputIllustrationPointsBeCalculated)
+ {
+ overtoppingOutput.GeneralFaultTreeIllustrationPoint = ConvertIllustrationPointsResult(overtoppingCalculator.IllustrationPointsResult, overtoppingCalculator.IllustrationPointsParserErrorMessage);
+ }
+
calculation.Output = new GrassCoverErosionInwardsOutput(
- new GrassCoverErosionInwardsOvertoppingOutput(overtoppingCalculator.WaveHeight,
- overtoppingCalculator.IsOvertoppingDominant,
- ProbabilityAssessmentService.Calculate(
- assessmentSection.FailureMechanismContribution.Norm,
- failureMechanismContribution,
- generalInput.N,
- overtoppingCalculator.ExceedanceProbabilityBeta)),
+ overtoppingOutput,
dikeHeightOutput,
overtoppingRateOutput);
}
@@ -704,6 +721,35 @@
return validationResult.ToArray();
}
+ ///
+ /// Converts a based on the information
+ /// of to a .
+ ///
+ /// The to base the
+ /// to create on.
+ ///
+ private GeneralResult ConvertIllustrationPointsResult(GeneralResult result, string errorMessage)
+ {
+ if (result == null)
+ {
+ log.Warn(errorMessage);
+ return null;
+ }
+
+ try
+ {
+ GeneralResult generalResult =
+ GeneralResultConverter.CreateGeneralResultTopLevelFaultTreeIllustrationPoint(result);
+ return generalResult;
+ }
+ catch (IllustrationPointConversionException e)
+ {
+ log.Warn(Resources.SetIllustrationPointsResult_Converting_IllustrationPointResult_Failed, e);
+ }
+
+ return null;
+ }
+
private void NotifyProgress(string stepName, int currentStepNumber, int totalStepNumber)
{
OnProgress?.Invoke(stepName, currentStepNumber, totalStepNumber);