Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Data/StabilityStoneCoverFailureMechanismSectionResultAssemblyFactory.cs =================================================================== diff -u -r25b2443d5da71ae1adf430992a702cadf8b3492d -re9147b9d6a0e7aef3163f3156ab6bcda03a13b2d --- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Data/StabilityStoneCoverFailureMechanismSectionResultAssemblyFactory.cs (.../StabilityStoneCoverFailureMechanismSectionResultAssemblyFactory.cs) (revision 25b2443d5da71ae1adf430992a702cadf8b3492d) +++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Data/StabilityStoneCoverFailureMechanismSectionResultAssemblyFactory.cs (.../StabilityStoneCoverFailureMechanismSectionResultAssemblyFactory.cs) (revision e9147b9d6a0e7aef3163f3156ab6bcda03a13b2d) @@ -132,5 +132,41 @@ throw new AssemblyException(e.Message, e); } } + + /// + /// Assembles the combined assessment results. + /// + /// The failure mechanism section result to assemble the + /// combined assembly results for. + /// A based on the . + /// Thrown when + /// is null. + /// Thrown when the + /// could not be created. + public static FailureMechanismSectionAssemblyCategoryGroup AssembleCombinedAssessment( + StabilityStoneCoverFailureMechanismSectionResult failureMechanismSectionResult) + { + if (failureMechanismSectionResult == null) + { + throw new ArgumentNullException(nameof(failureMechanismSectionResult)); + } + + FailureMechanismSectionAssemblyCategoryGroup simpleAssembly = AssembleSimpleAssessment(failureMechanismSectionResult); + FailureMechanismSectionAssemblyCategoryGroup detailedAssembly = AssembleDetailedAssessment(failureMechanismSectionResult); + FailureMechanismSectionAssemblyCategoryGroup tailorMadeAssembly = AssembleTailorMadeAssessment(failureMechanismSectionResult); + + IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; + IFailureMechanismSectionAssemblyCalculator calculator = + calculatorFactory.CreateFailureMechanismSectionAssemblyCalculator(AssemblyToolKernelFactory.Instance); + + try + { + return calculator.AssembleCombined(simpleAssembly, detailedAssembly, tailorMadeAssembly); + } + catch (FailureMechanismSectionAssemblyCalculatorException e) + { + throw new AssemblyException(e.Message, e); + } + } } } \ No newline at end of file