Index: Riskeer/Piping/src/Riskeer.Piping.Data/PipingFailureMechanismExtensions.cs
===================================================================
diff -u
--- Riskeer/Piping/src/Riskeer.Piping.Data/PipingFailureMechanismExtensions.cs (revision 0)
+++ Riskeer/Piping/src/Riskeer.Piping.Data/PipingFailureMechanismExtensions.cs (revision 4fa486586ff8fc89759e91d6b4ca09833e5a4b94)
@@ -0,0 +1,46 @@
+// Copyright (C) Stichting Deltares 2021. All rights reserved.
+//
+// This file is part of Riskeer.
+//
+// Riskeer is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System.Linq;
+using Riskeer.Common.Data.FailureMechanism;
+
+namespace Riskeer.Piping.Data
+{
+ public static class PipingFailureMechanismExtensions
+ {
+ public static bool ScenarioConfigurationTypeIsSemiProbabilistic(
+ this PipingFailureMechanism failureMechanism, PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationForSection)
+ {
+ return failureMechanism.ScenarioConfigurationType == PipingScenarioConfigurationType.SemiProbabilistic
+ || failureMechanism.ScenarioConfigurationType == PipingScenarioConfigurationType.PerFailureMechanismSection
+ && scenarioConfigurationForSection.ScenarioConfigurationType == PipingScenarioConfigurationPerFailureMechanismSectionType.SemiProbabilistic;
+ }
+
+ public static PipingScenarioConfigurationPerFailureMechanismSection GetScenarioConfigurationForSection(
+ this PipingFailureMechanism failureMechanism,
+ FailureMechanismSectionResult sectionResult)
+ {
+ return failureMechanism.ScenarioConfigurationsPerFailureMechanismSection
+ .Single(sc => sc.Section.StartPoint.Equals(sectionResult.Section.StartPoint)
+ && sc.Section.EndPoint.Equals(sectionResult.Section.EndPoint));
+ }
+ }
+}
\ No newline at end of file
Index: Riskeer/Piping/src/Riskeer.Piping.Data/PipingFailureMechanismSectionResultCalculateProbabilityStrategyFactory.cs
===================================================================
diff -u
--- Riskeer/Piping/src/Riskeer.Piping.Data/PipingFailureMechanismSectionResultCalculateProbabilityStrategyFactory.cs (revision 0)
+++ Riskeer/Piping/src/Riskeer.Piping.Data/PipingFailureMechanismSectionResultCalculateProbabilityStrategyFactory.cs (revision 4fa486586ff8fc89759e91d6b4ca09833e5a4b94)
@@ -0,0 +1,63 @@
+// Copyright (C) Stichting Deltares 2021. All rights reserved.
+//
+// This file is part of Riskeer.
+//
+// Riskeer is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System.Linq;
+using Riskeer.Common.Data.AssessmentSection;
+using Riskeer.Common.Data.FailureMechanism;
+using Riskeer.Piping.Data.Probabilistic;
+using Riskeer.Piping.Data.SemiProbabilistic;
+
+namespace Riskeer.Piping.Data
+{
+ public static class PipingFailureMechanismSectionResultCalculateProbabilityStrategyFactory
+ {
+ public static IFailureMechanismSectionResultCalculateProbabilityStrategy CreateCalculateStrategy(
+ PipingFailureMechanism failureMechanism,
+ AdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult,
+ PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationForSection,
+ IAssessmentSection assessmentSection)
+ {
+ bool scenarioConfigurationTypeIsSemiProbabilistic = failureMechanism.ScenarioConfigurationTypeIsSemiProbabilistic(scenarioConfigurationForSection);
+
+ return scenarioConfigurationTypeIsSemiProbabilistic
+ ? (IFailureMechanismSectionResultCalculateProbabilityStrategy) CreateSemiProbabilisticCalculateStrategy(failureMechanism, sectionResult, assessmentSection)
+ : CreateProbabilisticCalculateStrategy(failureMechanism, sectionResult);
+ }
+
+ private static ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy CreateProbabilisticCalculateStrategy(
+ PipingFailureMechanism failureMechanism,
+ AdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult)
+ {
+ return new ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
+ sectionResult, failureMechanism.Calculations.OfType());
+ }
+
+ private static SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy CreateSemiProbabilisticCalculateStrategy(
+ PipingFailureMechanism failureMechanism,
+ AdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult,
+ IAssessmentSection assessmentSection)
+ {
+ return new SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
+ sectionResult, failureMechanism.Calculations.OfType(),
+ failureMechanism, assessmentSection);
+ }
+ }
+}
\ No newline at end of file
Index: Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismResultView.cs
===================================================================
diff -u -r0f258c9a05ea883ecca0e68724e9cd39c7cc5987 -r4fa486586ff8fc89759e91d6b4ca09833e5a4b94
--- Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismResultView.cs (.../PipingFailureMechanismResultView.cs) (revision 0f258c9a05ea883ecca0e68724e9cd39c7cc5987)
+++ Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismResultView.cs (.../PipingFailureMechanismResultView.cs) (revision 4fa486586ff8fc89759e91d6b4ca09833e5a4b94)
@@ -120,11 +120,12 @@
protected override AdoptableWithProfileProbabilityFailureMechanismSectionResultRow CreateFailureMechanismSectionResultRow(AdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult)
{
- PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationForSection = GetScenarioConfigurationForSection(sectionResult);
+ PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationForSection = FailureMechanism.GetScenarioConfigurationForSection(sectionResult);
return new AdoptableWithProfileProbabilityFailureMechanismSectionResultRow(
sectionResult,
- CreateCalculateStrategy(sectionResult, scenarioConfigurationForSection),
+ PipingFailureMechanismSectionResultCalculateProbabilityStrategyFactory.CreateCalculateStrategy(
+ FailureMechanism, sectionResult, scenarioConfigurationForSection, assessmentSection),
CreateErrorProvider(sectionResult, scenarioConfigurationForSection),
CreateLengthEffectProvider(sectionResult),
assessmentSection,
@@ -202,7 +203,7 @@
private IFailureMechanismSectionResultRowWithCalculatedProbabilityErrorProvider CreateErrorProvider(
FailureMechanismSectionResult sectionResult, PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationForSection)
{
- IEnumerable> calculationScenarios = ScenarioConfigurationTypeIsSemiProbabilistic(scenarioConfigurationForSection)
+ IEnumerable> calculationScenarios = FailureMechanism.ScenarioConfigurationTypeIsSemiProbabilistic(scenarioConfigurationForSection)
? (IEnumerable>) FailureMechanism.Calculations.OfType()
: FailureMechanism.Calculations.OfType();
@@ -211,41 +212,6 @@
(scenario, lineSegments) => scenario.IsSurfaceLineIntersectionWithReferenceLineInSection(lineSegments));
}
- private IFailureMechanismSectionResultCalculateProbabilityStrategy CreateCalculateStrategy(AdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult,
- PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationForSection)
- {
- return ScenarioConfigurationTypeIsSemiProbabilistic(scenarioConfigurationForSection)
- ? (IFailureMechanismSectionResultCalculateProbabilityStrategy) CreateSemiProbabilisticCalculateStrategy(sectionResult)
- : CreateProbabilisticCalculateStrategy(sectionResult);
- }
-
- private ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy CreateProbabilisticCalculateStrategy(AdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult)
- {
- return new ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, FailureMechanism.Calculations.OfType());
- }
-
- private SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy CreateSemiProbabilisticCalculateStrategy(AdoptableWithProfileProbabilityFailureMechanismSectionResult sectionResult)
- {
- return new SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy(
- sectionResult, FailureMechanism.Calculations.OfType(),
- FailureMechanism, assessmentSection);
- }
-
- private PipingScenarioConfigurationPerFailureMechanismSection GetScenarioConfigurationForSection(FailureMechanismSectionResult sectionResult)
- {
- return FailureMechanism.ScenarioConfigurationsPerFailureMechanismSection
- .Single(sc => sc.Section.StartPoint.Equals(sectionResult.Section.StartPoint)
- && sc.Section.EndPoint.Equals(sectionResult.Section.EndPoint));
- }
-
- private bool ScenarioConfigurationTypeIsSemiProbabilistic(PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationForSection)
- {
- return FailureMechanism.ScenarioConfigurationType == PipingScenarioConfigurationType.SemiProbabilistic
- || FailureMechanism.ScenarioConfigurationType == PipingScenarioConfigurationType.PerFailureMechanismSection
- && scenarioConfigurationForSection.ScenarioConfigurationType == PipingScenarioConfigurationPerFailureMechanismSectionType.SemiProbabilistic;
- }
-
private ILengthEffectProvider CreateLengthEffectProvider(FailureMechanismSectionResult sectionResult)
{
return new LengthEffectProvider(