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