Index: Riskeer/Piping/src/Riskeer.Piping.Plugin/PipingPlugin.cs =================================================================== diff -u -rb03e4918d94a87bef23992b2d0b242cc6b8719c6 -r28fbc1322470012f3546c1d7343dfb73ae0cefd1 --- Riskeer/Piping/src/Riskeer.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision b03e4918d94a87bef23992b2d0b242cc6b8719c6) +++ Riskeer/Piping/src/Riskeer.Piping.Plugin/PipingPlugin.cs (.../PipingPlugin.cs) (revision 28fbc1322470012f3546c1d7343dfb73ae0cefd1) @@ -680,31 +680,36 @@ foreach (ICalculationBase item in nodeData.WrappedData.Children) { - var calculation = item as PipingCalculationScenario; - var group = item as CalculationGroup; - - if (calculation != null) + switch (item) { - childNodeObjects.Add(new PipingCalculationScenarioContext(calculation, - nodeData.WrappedData, - nodeData.AvailablePipingSurfaceLines, - nodeData.AvailableStochasticSoilModels, - nodeData.FailureMechanism, - nodeData.AssessmentSection)); + case PipingCalculationScenario semiProbabilisticCalculation: + childNodeObjects.Add(new PipingCalculationScenarioContext(semiProbabilisticCalculation, + nodeData.WrappedData, + nodeData.AvailablePipingSurfaceLines, + nodeData.AvailableStochasticSoilModels, + nodeData.FailureMechanism, + nodeData.AssessmentSection)); + break; + case ProbabilisticPipingCalculation probabilisticCalculation: + childNodeObjects.Add(new ProbabilisticPipingCalculationContext(probabilisticCalculation, + nodeData.WrappedData, + nodeData.AvailablePipingSurfaceLines, + nodeData.AvailableStochasticSoilModels, + nodeData.FailureMechanism, + nodeData.AssessmentSection)); + break; + case CalculationGroup group: + childNodeObjects.Add(new PipingCalculationGroupContext(group, + nodeData.WrappedData, + nodeData.AvailablePipingSurfaceLines, + nodeData.AvailableStochasticSoilModels, + nodeData.FailureMechanism, + nodeData.AssessmentSection)); + break; + default: + childNodeObjects.Add(item); + break; } - else if (group != null) - { - childNodeObjects.Add(new PipingCalculationGroupContext(group, - nodeData.WrappedData, - nodeData.AvailablePipingSurfaceLines, - nodeData.AvailableStochasticSoilModels, - nodeData.FailureMechanism, - nodeData.AssessmentSection)); - } - else - { - childNodeObjects.Add(item); - } } return childNodeObjects.ToArray(); Index: Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs =================================================================== diff -u -rb03e4918d94a87bef23992b2d0b242cc6b8719c6 -r28fbc1322470012f3546c1d7343dfb73ae0cefd1 --- Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision b03e4918d94a87bef23992b2d0b242cc6b8719c6) +++ Riskeer/Piping/test/Riskeer.Piping.Plugin.Test/TreeNodeInfos/PipingCalculationGroupContextTreeNodeInfoTest.cs (.../PipingCalculationGroupContextTreeNodeInfoTest.cs) (revision 28fbc1322470012f3546c1d7343dfb73ae0cefd1) @@ -147,13 +147,15 @@ // Setup var calculationItem = mocks.StrictMock(); - var childCalculation = new PipingCalculationScenario(new GeneralPipingInput()); + var semiProbabilisticChildCalculation = new PipingCalculationScenario(new GeneralPipingInput()); + var probabilisticChildCalculation = new ProbabilisticPipingCalculation(new GeneralPipingInput()); var childGroup = new CalculationGroup(); var group = new CalculationGroup(); group.Children.Add(calculationItem); - group.Children.Add(childCalculation); + group.Children.Add(semiProbabilisticChildCalculation); + group.Children.Add(probabilisticChildCalculation); group.Children.Add(childGroup); var pipingFailureMechanism = new PipingFailureMechanism(); @@ -174,11 +176,18 @@ // Assert Assert.AreEqual(group.Children.Count, children.Length); Assert.AreSame(calculationItem, children[0]); - var returnedCalculationContext = (PipingCalculationScenarioContext) children[1]; - Assert.AreSame(childCalculation, returnedCalculationContext.WrappedData); - Assert.AreSame(group, returnedCalculationContext.Parent); - Assert.AreSame(pipingFailureMechanism, returnedCalculationContext.FailureMechanism); - var returnedCalculationGroupContext = (PipingCalculationGroupContext) children[2]; + + var returnedSemiProbabilisticCalculationContext = (PipingCalculationScenarioContext) children[1]; + Assert.AreSame(semiProbabilisticChildCalculation, returnedSemiProbabilisticCalculationContext.WrappedData); + Assert.AreSame(group, returnedSemiProbabilisticCalculationContext.Parent); + Assert.AreSame(pipingFailureMechanism, returnedSemiProbabilisticCalculationContext.FailureMechanism); + + var returnedProbabilisticCalculationContext = (ProbabilisticPipingCalculationContext) children[2]; + Assert.AreSame(probabilisticChildCalculation, returnedProbabilisticCalculationContext.WrappedData); + Assert.AreSame(group, returnedProbabilisticCalculationContext.Parent); + Assert.AreSame(pipingFailureMechanism, returnedProbabilisticCalculationContext.FailureMechanism); + + var returnedCalculationGroupContext = (PipingCalculationGroupContext) children[3]; Assert.AreSame(childGroup, returnedCalculationGroupContext.WrappedData); Assert.AreSame(group, returnedCalculationGroupContext.Parent); Assert.AreSame(pipingFailureMechanism, returnedCalculationGroupContext.FailureMechanism);