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