public static IEnumerable <WorkflowBranch> ChildBranches(WorkflowItem startItem, IWorkflow workflow) { var allBranches = new List <WorkflowBranch>(); var childBranch = new WorkflowBranch(workflow, startItem); if (childBranch.Children().Any()) { foreach (var child in childBranch.Children()) { allBranches.Add(childBranch.Add(child)); } } else { allBranches.Add(childBranch); } return(allBranches); }