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