示例#1
0
 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);
     }
 }
示例#2
0
        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);
        }
示例#3
0
        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);
        }