Index: Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableAssessmentSectionFactory.cs
===================================================================
diff -u -rb355635a42391cc4f1699f6d3a0e3439ef7a7e52 -r6a22c3ff4de0702b053397d1560f18d69155d6a2
--- Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableAssessmentSectionFactory.cs (.../ExportableAssessmentSectionFactory.cs) (revision b355635a42391cc4f1699f6d3a0e3439ef7a7e52)
+++ Riskeer/Integration/src/Riskeer.Integration.IO/Factories/ExportableAssessmentSectionFactory.cs (.../ExportableAssessmentSectionFactory.cs) (revision 6a22c3ff4de0702b053397d1560f18d69155d6a2)
@@ -58,17 +58,14 @@
public static class ExportableAssessmentSectionFactory
{
///
- /// Creates an with assembly results
- /// based on .
+ /// Creates an with assembly results based on .
///
/// The generator to generate ids for the exportable components.
- /// The to create
- /// an for.
+ /// The to create an for.
/// An with assembly results.
/// Thrown when any parameter is null.
/// Thrown when no reference line is set for .
- /// Thrown when assembly results cannot be created for
- /// .
+ /// Thrown when assembly results cannot be created for .
/// Thrown when assembly results are invalid and cannot be exported.
public static ExportableAssessmentSection CreateExportableAssessmentSection(IdentifierGenerator idGenerator, AssessmentSection assessmentSection)
{
@@ -87,13 +84,14 @@
.ToArray();
var registry = new ExportableModelRegistry();
- return new ExportableAssessmentSection(IdentifierGenerator.GenerateId(assessmentSection),
- assessmentSection.Name,
- assessmentSection.ReferenceLine.Points,
- CreateExportableFailureMechanismSectionCollections(idGenerator, registry, assessmentSection, combinedSectionAssemblyResults),
- CreateExportableAssessmentSectionAssemblyResult(idGenerator, assessmentSection),
- CreateExportableFailureMechanisms(idGenerator, registry, assessmentSection),
- CreateExportableCombinedSectionAssemblyCollection(idGenerator, registry, assessmentSection, combinedSectionAssemblyResults));
+ return new ExportableAssessmentSection(
+ IdentifierGenerator.GenerateId(assessmentSection),
+ assessmentSection.Name,
+ assessmentSection.ReferenceLine.Points,
+ CreateExportableFailureMechanismSectionCollections(idGenerator, registry, assessmentSection, combinedSectionAssemblyResults),
+ CreateExportableAssessmentSectionAssemblyResult(idGenerator, assessmentSection),
+ CreateExportableFailureMechanisms(idGenerator, registry, assessmentSection),
+ CreateExportableCombinedSectionAssemblyCollection(idGenerator, registry, assessmentSection, combinedSectionAssemblyResults));
}
///
@@ -173,75 +171,86 @@
var exportableFailureMechanisms = new List();
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, registry, exportableFailureMechanisms, assessmentSection.Piping, assessmentSection, PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.Piping, assessmentSection,
+ PipingFailureMechanismAssemblyFactory.AssembleFailureMechanism,
PipingFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, registry, exportableFailureMechanisms, assessmentSection.GrassCoverErosionInwards, assessmentSection, GrassCoverErosionInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.GrassCoverErosionInwards, assessmentSection,
+ GrassCoverErosionInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism,
GrassCoverErosionInwardsFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, registry, exportableFailureMechanisms, assessmentSection.MacroStabilityInwards, assessmentSection, MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.MacroStabilityInwards, assessmentSection,
+ MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism,
MacroStabilityInwardsFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, registry, exportableFailureMechanisms, assessmentSection.Microstability, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.Microstability, assessmentSection,
+ FailureMechanismAssemblyFactory.AssembleFailureMechanism,
FailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, registry, exportableFailureMechanisms, assessmentSection.StabilityStoneCover, assessmentSection, StabilityStoneCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.StabilityStoneCover, assessmentSection,
+ StabilityStoneCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism,
StabilityStoneCoverFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, registry, exportableFailureMechanisms, assessmentSection.WaveImpactAsphaltCover, assessmentSection, WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.WaveImpactAsphaltCover, assessmentSection,
+ WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.AssembleFailureMechanism,
WaveImpactAsphaltCoverFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, registry, exportableFailureMechanisms, assessmentSection.WaterPressureAsphaltCover, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.WaterPressureAsphaltCover, assessmentSection,
+ FailureMechanismAssemblyFactory.AssembleFailureMechanism,
FailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, registry, exportableFailureMechanisms, assessmentSection.GrassCoverErosionOutwards, assessmentSection, GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.GrassCoverErosionOutwards, assessmentSection,
+ GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleFailureMechanism,
GrassCoverErosionOutwardsFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, registry, exportableFailureMechanisms, assessmentSection.GrassCoverSlipOffOutwards, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.GrassCoverSlipOffOutwards, assessmentSection,
+ FailureMechanismAssemblyFactory.AssembleFailureMechanism,
FailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, registry, exportableFailureMechanisms, assessmentSection.GrassCoverSlipOffInwards, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.GrassCoverSlipOffInwards, assessmentSection,
+ FailureMechanismAssemblyFactory.AssembleFailureMechanism,
FailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, registry, exportableFailureMechanisms, assessmentSection.HeightStructures, assessmentSection, HeightStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.HeightStructures, assessmentSection,
+ HeightStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism,
StructuresFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, registry, exportableFailureMechanisms, assessmentSection.ClosingStructures, assessmentSection, ClosingStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.ClosingStructures, assessmentSection,
+ ClosingStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism,
StructuresFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, registry, exportableFailureMechanisms, assessmentSection.PipingStructure, assessmentSection, PipingStructureFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.PipingStructure, assessmentSection,
+ PipingStructureFailureMechanismAssemblyFactory.AssembleFailureMechanism,
(sr, fm, ass) => FailureMechanismSectionAssemblyResultFactory.AssembleSection(sr, ass));
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, registry, exportableFailureMechanisms, assessmentSection.StabilityPointStructures, assessmentSection, StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.StabilityPointStructures, assessmentSection,
+ StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism,
StructuresFailureMechanismAssemblyFactory.AssembleSection);
AddGenericFailureMechanismWhenInAssembly(
- idGenerator, registry, exportableFailureMechanisms, assessmentSection.DuneErosion, assessmentSection, DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ idGenerator, registry, exportableFailureMechanisms, assessmentSection.DuneErosion, assessmentSection,
+ DuneErosionFailureMechanismAssemblyFactory.AssembleFailureMechanism,
(sr, fm, ass) => FailureMechanismSectionAssemblyResultFactory.AssembleSection(sr, ass));
- foreach (SpecificFailureMechanism specificFailureMechanism in assessmentSection.SpecificFailureMechanisms)
- {
- if (specificFailureMechanism.InAssembly)
- {
- exportableFailureMechanisms.Add(
- ExportableFailureMechanismFactory.CreateExportableSpecificFailureMechanism(
- idGenerator, registry, specificFailureMechanism, assessmentSection, FailureMechanismAssemblyFactory.AssembleFailureMechanism,
- FailureMechanismAssemblyFactory.AssembleSection));
- }
- }
+ exportableFailureMechanisms.AddRange(
+ assessmentSection.SpecificFailureMechanisms.Where(fm => fm.InAssembly)
+ .Select(fm => ExportableFailureMechanismFactory.CreateExportableSpecificFailureMechanism(
+ idGenerator, registry, fm, assessmentSection,
+ FailureMechanismAssemblyFactory.AssembleFailureMechanism,
+ FailureMechanismAssemblyFactory.AssembleSection)));
return exportableFailureMechanisms;
}
@@ -260,8 +269,7 @@
/// mechanism section.
/// The type of failure mechanism.
/// The type of section result.
- /// Thrown when assembly results cannot be created for
- /// .
+ /// Thrown when assembly results cannot be created for .
/// Thrown when assembly results are invalid and cannot be exported.
private static void AddGenericFailureMechanismWhenInAssembly(
IdentifierGenerator idGenerator, ExportableModelRegistry registry, List exportableFailureMechanisms,
@@ -280,7 +288,7 @@
}
private static IEnumerable CreateExportableFailureMechanismSectionCollections(
- IdentifierGenerator idGenerator, ExportableModelRegistry registry, AssessmentSection assessmentSection,
+ IdentifierGenerator idGenerator, ExportableModelRegistry registry, IAssessmentSection assessmentSection,
IEnumerable combinedSectionAssemblyResults)
{
IEnumerable failureMechanismsInAssembly = assessmentSection.GetFailureMechanisms()
Index: Riskeer/Integration/test/Riskeer.Integration.IO.Test/Factories/ExportableAssessmentSectionFactoryTest.cs
===================================================================
diff -u -r30d63f2cf5c708feb8ea4b0a74ac29d65658e685 -r6a22c3ff4de0702b053397d1560f18d69155d6a2
--- Riskeer/Integration/test/Riskeer.Integration.IO.Test/Factories/ExportableAssessmentSectionFactoryTest.cs (.../ExportableAssessmentSectionFactoryTest.cs) (revision 30d63f2cf5c708feb8ea4b0a74ac29d65658e685)
+++ Riskeer/Integration/test/Riskeer.Integration.IO.Test/Factories/ExportableAssessmentSectionFactoryTest.cs (.../ExportableAssessmentSectionFactoryTest.cs) (revision 6a22c3ff4de0702b053397d1560f18d69155d6a2)
@@ -109,7 +109,8 @@
using (new AssemblyToolCalculatorFactoryConfig())
{
// Call
- ExportableAssessmentSection exportableAssessmentSection = ExportableAssessmentSectionFactory.CreateExportableAssessmentSection(idGenerator, assessmentSection);
+ ExportableAssessmentSection exportableAssessmentSection = ExportableAssessmentSectionFactory.CreateExportableAssessmentSection(
+ idGenerator, assessmentSection);
// Assert
Assert.AreEqual(name, exportableAssessmentSection.Name);
@@ -222,12 +223,15 @@
FailureMechanismTestHelper.AddSections(assessmentSection.GrassCoverSlipOffInwards, random.Next(1, 10));
FailureMechanismTestHelper.AddSections(assessmentSection.PipingStructure, random.Next(1, 10));
FailureMechanismTestHelper.AddSections(assessmentSection.WaterPressureAsphaltCover, random.Next(1, 10));
- FailureMechanismTestHelper.AddSections(assessmentSection.SpecificFailureMechanisms.First(), random.Next(1, 10));
- FailureMechanismTestHelper.AddSections(assessmentSection.SpecificFailureMechanisms.Last(), random.Next(1, 10));
+
+ foreach (SpecificFailureMechanism specificFailureMechanism in assessmentSection.SpecificFailureMechanisms)
+ {
+ FailureMechanismTestHelper.AddSections(specificFailureMechanism, random.Next(1, 10));
+ }
}
private static void AssertExportableFailureMechanismSectionCollections(
- AssessmentSection assessmentSection, IEnumerable failureMechanismSectionCollections)
+ IAssessmentSection assessmentSection, IEnumerable failureMechanismSectionCollections)
{
IEnumerable failureMechanismsInAssembly = assessmentSection.GetFailureMechanisms()
.Concat(assessmentSection.SpecificFailureMechanisms)
@@ -334,7 +338,7 @@
}
private static void AssertExportableFailureMechanismCombinedSectionAssemblyResults(
- ExportableCombinedFailureMechanismSection combinedFailureMechanismSection, IEnumerable exportableFailureMechanisms,
+ ExportableFailureMechanismSection combinedFailureMechanismSection, IEnumerable exportableFailureMechanisms,
IEnumerable exportableFailureMechanismCombinedSectionAssemblyResults)
{
Assert.AreEqual(17, exportableFailureMechanismCombinedSectionAssemblyResults.Count());
@@ -409,31 +413,28 @@
}
private static void AssertExportableFailureMechanismCombinedSectionAssemblyResult(
- ExportableCombinedFailureMechanismSection combinedFailureMechanismSectionAssembly,
+ ExportableFailureMechanismSection combinedFailureMechanismSectionAssembly,
IEnumerable failureMechanismSectionAssemblyResults,
ExportableFailureMechanismCombinedSectionAssemblyResult actualExportableFailureMechanismCombinedSectionAssemblyResult)
{
- ExportableFailureMechanismSectionAssemblyResult associatedAssemblyResult = GetCorrespondingSectionAssemblyResultResult(combinedFailureMechanismSectionAssembly, failureMechanismSectionAssemblyResults);
+ ExportableFailureMechanismSectionAssemblyResult associatedAssemblyResult = GetCorrespondingSectionAssemblyResultResult(
+ combinedFailureMechanismSectionAssembly, failureMechanismSectionAssemblyResults);
Assert.AreSame(associatedAssemblyResult, actualExportableFailureMechanismCombinedSectionAssemblyResult.FailureMechanismSectionResult);
Assert.AreEqual(FailureMechanismSectionAssemblyGroup.Dominant, actualExportableFailureMechanismCombinedSectionAssemblyResult.AssemblyGroup);
Assert.AreEqual(ExportableAssemblyMethod.BOI3B1, actualExportableFailureMechanismCombinedSectionAssemblyResult.AssemblyMethod);
}
private static ExportableFailureMechanismSectionAssemblyResult GetCorrespondingSectionAssemblyResultResult(
- ExportableCombinedFailureMechanismSection combinedFailureMechanismSection,
+ ExportableFailureMechanismSection combinedFailureMechanismSection,
IEnumerable sectionAssemblyResults)
{
- foreach (ExportableFailureMechanismSectionAssemblyResult assemblyResult in sectionAssemblyResults)
+ return sectionAssemblyResults.FirstOrDefault(assemblyResult =>
{
ExportableFailureMechanismSection exportableFailureMechanismSection = assemblyResult.FailureMechanismSection;
- if (combinedFailureMechanismSection.StartDistance >= exportableFailureMechanismSection.StartDistance
- && combinedFailureMechanismSection.EndDistance <= exportableFailureMechanismSection.EndDistance)
- {
- return assemblyResult;
- }
- }
- throw new Exception("Match not found");
+ return combinedFailureMechanismSection.StartDistance >= exportableFailureMechanismSection.StartDistance
+ && combinedFailureMechanismSection.EndDistance <= exportableFailureMechanismSection.EndDistance;
+ });
}
}
}
\ No newline at end of file