Index: Ringtoets/Common/src/Ringtoets.Common.Service/Structures/StructuresCalculationServiceBase.cs =================================================================== diff -u -r19f983eab8eac43d27e39f6eb9de019bad677652 -re6e0f3a201a644070997b531763b63f19d44df0e --- Ringtoets/Common/src/Ringtoets.Common.Service/Structures/StructuresCalculationServiceBase.cs (.../StructuresCalculationServiceBase.cs) (revision 19f983eab8eac43d27e39f6eb9de019bad677652) +++ Ringtoets/Common/src/Ringtoets.Common.Service/Structures/StructuresCalculationServiceBase.cs (.../StructuresCalculationServiceBase.cs) (revision e6e0f3a201a644070997b531763b63f19d44df0e) @@ -28,16 +28,21 @@ using log4net; 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; using Ringtoets.Common.IO.HydraRing; +using Ringtoets.Common.Service.IllustrationPoints; using Ringtoets.Common.Service.MessageProviders; using Ringtoets.Common.Service.Properties; using Ringtoets.Common.Service.ValidationRules; using Ringtoets.HydraRing.Calculation.Calculator; using Ringtoets.HydraRing.Calculation.Calculator.Factory; using Ringtoets.HydraRing.Calculation.Data.Input; using Ringtoets.HydraRing.Calculation.Exceptions; +using HydraRingGeneralResult = Ringtoets.HydraRing.Calculation.Data.Output.IllustrationPoints.GeneralResult; namespace Ringtoets.Common.Service.Structures { @@ -170,9 +175,14 @@ lengthEffectN, calculator.ExceedanceProbabilityBeta); calculation.Output = new StructuresOutput(probabilityAssessmentOutput); + + if (calculation.InputParameters.ShouldIllustrationPointsBeCalculated) + { + SetIllustrationPointsResult(calculation.Output, calculator.IllustrationPointsResult); + } } } - catch (HydraRingCalculationException) + catch (HydraRingCalculationException e) { if (!canceled) { @@ -182,7 +192,7 @@ ? messageProvider.GetCalculationFailedMessage(calculationName) : messageProvider.GetCalculationFailedWithErrorReportMessage(calculationName, lastErrorFileContent); - log.Error(message); + log.Error(message, e); exceptionThrown = true; throw; @@ -209,6 +219,32 @@ } /// + /// Sets a based on the information + /// of to the . + /// + /// The + /// for which to set the . + /// The to base the + /// to create on. + private static void SetIllustrationPointsResult(StructuresOutput structuresOutput, + HydraRingGeneralResult hydraRingGeneralResult) + { + if (hydraRingGeneralResult != null) + { + try + { + GeneralResult generalResult = + GeneralResultConverter.CreateGeneralResultTopLevelFaultTreeIllustrationPoint(hydraRingGeneralResult); + structuresOutput.SetIllustrationPoints(generalResult); + } + catch (IllustrationPointConversionException e) + { + log.Warn(Resources.SetIllustrationPointsResult_Converting_IllustrationPointResult_Failed, e); + } + } + } + + /// /// Cancels any currently running structures calculation. /// public void Cancel()