Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.cs
===================================================================
diff -u -rad479a80b6db7879b935aecaca743c39615ec977 -rc7425b8f799095f2dc812351e14103931c672fba
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.cs) (revision ad479a80b6db7879b935aecaca743c39615ec977)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.Data/GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.cs (.../GrassCoverErosionInwardsFailureMechanismSectionResultAssemblyFactory.cs) (revision c7425b8f799095f2dc812351e14103931c672fba)
@@ -20,10 +20,13 @@
// All rights reserved.
using System;
+using System.Collections.Generic;
using Ringtoets.AssemblyTool.Data;
using Ringtoets.AssemblyTool.KernelWrapper.Calculators;
using Ringtoets.AssemblyTool.KernelWrapper.Calculators.Assembly;
using Ringtoets.AssemblyTool.KernelWrapper.Kernels;
+using Ringtoets.Common.Data.AssemblyTool;
+using Ringtoets.Common.Data.AssessmentSection;
using Ringtoets.Common.Data.Exceptions;
namespace Ringtoets.GrassCoverErosionInwards.Data
@@ -64,5 +67,56 @@
throw new AssemblyFactoryException(e.Message, e);
}
}
+
+ ///
+ /// Assembles the detailed assessment result.
+ ///
+ /// The failure mechanism section result to
+ /// assemble the detailed assembly for.
+ /// The failure mechanism.
+ /// The .
+ /// A .
+ /// Thrown when any parameter is null.
+ /// Thrown when
+ /// cannot be assembled.
+ public static FailureMechanismSectionAssembly AssembleDetailedAssembly(
+ GrassCoverErosionInwardsFailureMechanismSectionResult failureMechanismSectionResult,
+ GrassCoverErosionInwardsFailureMechanism failureMechanism,
+ IAssessmentSection assessmentSection)
+ {
+ if (failureMechanismSectionResult == null)
+ {
+ throw new ArgumentNullException(nameof(failureMechanismSectionResult));
+ }
+
+ if (failureMechanism == null)
+ {
+ throw new ArgumentNullException(nameof(failureMechanism));
+ }
+
+ if (assessmentSection == null)
+ {
+ throw new ArgumentNullException(nameof(assessmentSection));
+ }
+
+ IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance;
+ IFailureMechanismSectionAssemblyCalculator calculator = calculatorFactory.CreateFailureMechanismSectionAssemblyCalculator(AssemblyToolKernelFactory.Instance);
+
+ try
+ {
+ IEnumerable categories = AssemblyToolCategoriesFactory.CreateFailureMechanismSectionAssemblyCategories(
+ assessmentSection.FailureMechanismContribution.SignalingNorm,
+ assessmentSection.FailureMechanismContribution.LowerLimitNorm,
+ failureMechanism.Contribution,
+ failureMechanism.GeneralInput.N);
+
+ return calculator.AssembleDetailedAssessment(failureMechanismSectionResult.GetDetailedAssessmentProbability(failureMechanism, assessmentSection),
+ categories);
+ }
+ catch (FailureMechanismSectionAssemblyCalculatorException e)
+ {
+ throw new AssemblyFactoryException(e.Message, e);
+ }
+ }
}
}
\ No newline at end of file