in Forge.TreeWalker/src/TreeWalkerSession.cs [581:606]
internal async Task PerformSubroutineTypeBehavior(TreeNode treeNode, string treeNodeKey)
{
// Perform pre-checks.
if (treeNode.Actions == null)
{
throw new ArgumentException("Subroutine TreeNodeType does not contain any Actions. TreeNodeKey: " + treeNodeKey);
}
bool preCheck_ContainsAtLeastOneSubroutineAction = false;
foreach (TreeAction treeAction in treeNode.Actions.Values)
{
if (treeAction.Action == nameof(SubroutineAction))
{
preCheck_ContainsAtLeastOneSubroutineAction = true;
break;
}
}
if (!preCheck_ContainsAtLeastOneSubroutineAction)
{
throw new ArgumentException("Subroutine TreeNodeTypes must contain at least one SubroutineAction. TreeNodeKey: " + treeNodeKey);
}
await this.PerformActionTypeBehavior(treeNode, treeNodeKey).ConfigureAwait(false);
}