Index: Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismResultView.cs =================================================================== diff -u -rcd7fec8fa5512cd13b808b6ea0ffbc22e3e502b9 -r7d5d49a1cac9d493358129649c60fb2d9b651e9a --- Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismResultView.cs (.../PipingFailureMechanismResultView.cs) (revision cd7fec8fa5512cd13b808b6ea0ffbc22e3e502b9) +++ Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismResultView.cs (.../PipingFailureMechanismResultView.cs) (revision 7d5d49a1cac9d493358129649c60fb2d9b651e9a) @@ -54,7 +54,7 @@ private const int sectionNIndex = 11; private const int assemblyGroupIndex = 12; - private readonly RecursiveObserver calculationInputObserver; + private readonly RecursiveObserver calculationInputsObserver; private readonly RecursiveObserver calculationGroupObserver; private readonly RecursiveObserver, PipingScenarioConfigurationPerFailureMechanismSection> scenarioConfigurationsPerSectionObserver; private readonly IAssessmentSection assessmentSection; @@ -80,7 +80,7 @@ this.assessmentSection = assessmentSection; // The concat is needed to observe the input of calculations in child groups. - calculationInputObserver = new RecursiveObserver( + calculationInputsObserver = new RecursiveObserver( UpdateInternalViewData, cg => cg.Children.Concat(cg.Children .OfType>() @@ -110,7 +110,7 @@ protected override void Dispose(bool disposing) { - calculationInputObserver.Dispose(); + calculationInputsObserver.Dispose(); calculationGroupObserver.Dispose(); scenarioConfigurationsPerSectionObserver.Dispose(); @@ -120,7 +120,7 @@ protected override PipingFailureMechanismSectionResultRow CreateFailureMechanismSectionResultRow(PipingFailureMechanismSectionResult sectionResult) { PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationForSection = GetScenarioConfigurationForSection(sectionResult); - + return new PipingFailureMechanismSectionResultRow( sectionResult, CreateCalculateStrategy(sectionResult, scenarioConfigurationForSection), CreateErrorProvider(sectionResult, scenarioConfigurationForSection), @@ -178,38 +178,30 @@ FailureMechanismSectionResultViewColumnBuilder.AddRefinedSectionProbabilityColumn( DataGridViewControl, nameof(PipingFailureMechanismSectionResultRow.RefinedSectionProbability)); - + FailureMechanismSectionResultViewColumnBuilder.AddAssemblyProfileProbabilityColumn( DataGridViewControl, nameof(PipingFailureMechanismSectionResultRow.ProfileProbability)); - + FailureMechanismSectionResultViewColumnBuilder.AddAssemblySectionProbabilityColumn( DataGridViewControl, nameof(PipingFailureMechanismSectionResultRow.SectionProbability)); - + FailureMechanismSectionResultViewColumnBuilder.AddAssemblySectionNColumn( DataGridViewControl, nameof(PipingFailureMechanismSectionResultRow.SectionN)); - + FailureMechanismSectionResultViewColumnBuilder.AddAssemblyGroupColumn( DataGridViewControl, nameof(PipingFailureMechanismSectionResultRow.AssemblyGroup)); } - + private IInitialFailureMechanismResultErrorProvider CreateErrorProvider(FailureMechanismSectionResult sectionResult, PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationForSection) { - IEnumerable> calculationScenarios; - if (FailureMechanism.ScenarioConfigurationType == PipingScenarioConfigurationType.SemiProbabilistic - || FailureMechanism.ScenarioConfigurationType == PipingScenarioConfigurationType.PerFailureMechanismSection - && scenarioConfigurationForSection.ScenarioConfigurationType == PipingScenarioConfigurationPerFailureMechanismSectionType.SemiProbabilistic) - { - calculationScenarios = FailureMechanism.Calculations.OfType(); - } - else - { - calculationScenarios = FailureMechanism.Calculations.OfType(); - } + IEnumerable> calculationScenarios = ScenarioConfigurationTypeIsSemiProbabilistic(scenarioConfigurationForSection) + ? (IEnumerable>) FailureMechanism.Calculations.OfType() + : FailureMechanism.Calculations.OfType(); return new InitialFailureMechanismResultErrorProvider>( sectionResult, calculationScenarios, (scenario, lineSegments) => scenario.IsSurfaceLineIntersectionWithReferenceLineInSection(lineSegments)); @@ -218,14 +210,9 @@ private IPipingFailureMechanismSectionResultCalculateProbabilityStrategy CreateCalculateStrategy(PipingFailureMechanismSectionResult sectionResult, PipingScenarioConfigurationPerFailureMechanismSection scenarioConfigurationForSection) { - if (FailureMechanism.ScenarioConfigurationType == PipingScenarioConfigurationType.SemiProbabilistic - || FailureMechanism.ScenarioConfigurationType == PipingScenarioConfigurationType.PerFailureMechanismSection - && scenarioConfigurationForSection.ScenarioConfigurationType == PipingScenarioConfigurationPerFailureMechanismSectionType.SemiProbabilistic) - { - return CreateSemiProbabilisticCalculateStrategy(sectionResult); - } - - return CreateProbabilisticCalculateStrategy(sectionResult); + return ScenarioConfigurationTypeIsSemiProbabilistic(scenarioConfigurationForSection) + ? (IPipingFailureMechanismSectionResultCalculateProbabilityStrategy) CreateSemiProbabilisticCalculateStrategy(sectionResult) + : CreateProbabilisticCalculateStrategy(sectionResult); } private ProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy CreateProbabilisticCalculateStrategy(PipingFailureMechanismSectionResult sectionResult) @@ -247,5 +234,12 @@ .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; + } } } \ No newline at end of file