public static IEnumerable <WorkflowBranch> ParentBranches(WorkflowItem startItem) { var allBranches = new List <WorkflowBranch>(); var parentBranch = new WorkflowBranch(startItem); if (parentBranch.Parents().Any()) { foreach (var parent in parentBranch.Parents()) { allBranches.Add(parentBranch.Add(parent)); } } else { allBranches.Add(parentBranch); } return(allBranches); }