public static void AcceptVisitor(this BranchTree branch, IBranchTreeVisitor treeVisitor, int level = 0) { treeVisitor.Visit(branch, level); foreach (var childBranch in branch.ChildBranches) { childBranch.AcceptVisitor(treeVisitor, level + 1); } }
public static IEnumerable <BranchTree> GetAllChildren(this BranchTree branch) { if (branch == null) { return(Enumerable.Empty <BranchTree>()); } var childrenBranches = new List <BranchTree>(branch.ChildBranches); foreach (var childBranch in branch.ChildBranches) { childrenBranches.AddRange(childBranch.GetAllChildren()); } return(childrenBranches); }
public static IEnumerable <BranchTree> GetAllChildrenOfBranch(this BranchTree branch, string tfsPath) { if (branch == null) { return(Enumerable.Empty <BranchTree>()); } if (string.Compare(branch.Path, tfsPath, StringComparison.InvariantCultureIgnoreCase) == 0) { return(branch.GetAllChildren()); } var childrenBranches = new List <BranchTree>(); foreach (var childBranch in branch.ChildBranches) { childrenBranches.AddRange(GetAllChildrenOfBranch(childBranch, tfsPath)); } return(childrenBranches); }