Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationService.cs =================================================================== diff -u -r04d96e936610eab56e9ddc09c055526efe9b9652 -r3d9b418d483c122040e11a7e074d666c64e9d7b5 --- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationService.cs (.../GrassCoverErosionInwardsCalculationService.cs) (revision 04d96e936610eab56e9ddc09c055526efe9b9652) +++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Service/GrassCoverErosionInwardsCalculationService.cs (.../GrassCoverErosionInwardsCalculationService.cs) (revision 3d9b418d483c122040e11a7e074d666c64e9d7b5) @@ -21,6 +21,7 @@ using System.Collections.Generic; using System.Linq; +using log4net; using Ringtoets.Common.Data.AssessmentSection; using Ringtoets.Common.Data.FailureMechanism; using Ringtoets.Common.Service; @@ -29,6 +30,7 @@ using Ringtoets.HydraRing.Calculation.Data; using Ringtoets.HydraRing.Calculation.Data.Input.Overtopping; using Ringtoets.HydraRing.Calculation.Data.Output; +using Ringtoets.HydraRing.Calculation.Parsers; using Ringtoets.HydraRing.Calculation.Services; using Ringtoets.HydraRing.IO; using RingtoetsCommonServiceResources = Ringtoets.Common.Service.Properties.Resources; @@ -40,6 +42,8 @@ /// public static class GrassCoverErosionInwardsCalculationService { + private static readonly ILog log = LogManager.GetLogger(typeof(GrassCoverErosionInwardsCalculationService)); + /// /// Performs validation over the values on the given . Error and status information is logged during /// the execution of the operation. @@ -67,12 +71,38 @@ string ringId, GeneralGrassCoverErosionInwardsInput generalInput) { OvertoppingCalculationInput input = CreateInput(calculation, failureMechanismSection, generalInput); + var exceedanceProbabilityCalculationParser = new ExceedanceProbabilityCalculationParser(); - return CalculationServiceHelper.PerformCalculation(calculation.Name, - () => HydraRingCalculationService.PerformCalculation(hlcdDirectory, ringId, HydraRingTimeIntegrationSchemeType.FerryBorgesCastanheta, HydraRingUncertaintiesType.All, input), - Resources.GrassCoverErosionInwardsCalculationService_Calculate_Error_in_grass_cover_erosion_inwards_0_calculation); + CalculationServiceHelper.PerformCalculation( + calculation.Name, + () => + { + HydraRingCalculationService.PerformCalculation( + hlcdDirectory, + ringId, + HydraRingTimeIntegrationSchemeType.FerryBorgesCastanheta, + HydraRingUncertaintiesType.All, + input, + new[] + { + exceedanceProbabilityCalculationParser + }); + + VerifyOutput(exceedanceProbabilityCalculationParser.Output, calculation.Name); + }); + + return exceedanceProbabilityCalculationParser.Output; } + private static void VerifyOutput(ExceedanceProbabilityCalculationOutput output, string name) + { + if (output == null) + { + log.ErrorFormat(Resources.GrassCoverErosionInwardsCalculationService_Calculate_Error_in_grass_cover_erosion_inwards_0_calculation, name); + } + } + + private static OvertoppingCalculationInput CreateInput(GrassCoverErosionInwardsCalculation calculation, FailureMechanismSection failureMechanismSection, GeneralGrassCoverErosionInwardsInput generalInput) { return new OvertoppingCalculationInput(calculation.InputParameters.HydraulicBoundaryLocation.Id,