Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismAssemblyFactory.cs =================================================================== diff -u -r1ccc4cae6b203b1f7791833ab1ad0bcba0a9757f -r2081c1cf7ddfc58b47d48739629c330503bdab24 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismAssemblyFactory.cs (.../MacroStabilityInwardsFailureMechanismAssemblyFactory.cs) (revision 1ccc4cae6b203b1f7791833ab1ad0bcba0a9757f) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/MacroStabilityInwardsFailureMechanismAssemblyFactory.cs (.../MacroStabilityInwardsFailureMechanismAssemblyFactory.cs) (revision 2081c1cf7ddfc58b47d48739629c330503bdab24) @@ -262,22 +262,7 @@ throw new ArgumentNullException(nameof(assessmentSection)); } - FailureMechanismSectionAssembly sectionAssembly; - if (failureMechanismSectionResult.UseManualAssemblyProbability) - { - sectionAssembly = AssembleManualAssessment(failureMechanismSectionResult, - failureMechanism, - CreateAssemblyCategoriesInput(failureMechanism, assessmentSection)); - } - else - { - sectionAssembly = AssembleCombinedAssessment(failureMechanismSectionResult, - failureMechanism.Calculations.Cast(), - failureMechanism, - assessmentSection); - } - - return sectionAssembly.Group; + return GetSectionAssembly(failureMechanismSectionResult, failureMechanism, assessmentSection).Group; } /// @@ -310,9 +295,9 @@ IAssemblyToolCalculatorFactory calculatorFactory = AssemblyToolCalculatorFactory.Instance; AssemblyCategoriesInput assemblyCategoriesInput = CreateAssemblyCategoriesInput(failureMechanism, assessmentSection); - IEnumerable sectionAssemblies = AssembleSections(failureMechanism, - assessmentSection, - assemblyCategoriesInput); + IEnumerable sectionAssemblies = failureMechanism.SectionResults + .Select(sr => GetSectionAssembly(sr, failureMechanism, assessmentSection)) + .ToArray(); try { @@ -328,41 +313,34 @@ } /// - /// Assembles the combined assembly for all sections in the . + /// Gets the assembly of the given . /// + /// The failure mechanism section result to get the assembly for. /// The failure mechanism to assemble for. /// The the failure mechanism belongs to. - /// The input parameters used to determine the assembly categories. /// A collection of all section assembly results. /// Thrown when a /// could not be created. - private static IEnumerable AssembleSections(MacroStabilityInwardsFailureMechanism failureMechanism, - IAssessmentSection assessmentSection, - AssemblyCategoriesInput assemblyCategoriesInput) + private static FailureMechanismSectionAssembly GetSectionAssembly(MacroStabilityInwardsFailureMechanismSectionResult failureMechanismSectionResult, + MacroStabilityInwardsFailureMechanism failureMechanism, + IAssessmentSection assessmentSection) { - var sectionAssemblies = new List(); - - foreach (MacroStabilityInwardsFailureMechanismSectionResult sectionResult in failureMechanism.SectionResults) + FailureMechanismSectionAssembly sectionAssembly; + if (failureMechanismSectionResult.UseManualAssemblyProbability) { - FailureMechanismSectionAssembly sectionAssembly; - if (sectionResult.UseManualAssemblyProbability) - { - sectionAssembly = AssembleManualAssessment(sectionResult, - failureMechanism, - assemblyCategoriesInput); - } - else - { - sectionAssembly = AssembleCombinedAssessment(sectionResult, - failureMechanism.Calculations.Cast(), - failureMechanism, - assessmentSection); - } - - sectionAssemblies.Add(sectionAssembly); + sectionAssembly = AssembleManualAssessment(failureMechanismSectionResult, + failureMechanism, + CreateAssemblyCategoriesInput(failureMechanism, assessmentSection)); } + else + { + sectionAssembly = AssembleCombinedAssessment(failureMechanismSectionResult, + failureMechanism.Calculations.Cast(), + failureMechanism, + assessmentSection); + } - return sectionAssemblies; + return sectionAssembly; } ///