private static int GetNodeCount(BuildTreeNodeViewModel node) { var count = 0; foreach (var child in node.Children) { count += GetNodeCount(child); count += 1; } return(count); }
private static int GetMaxDepth(BuildTreeNodeViewModel node, int currentDepth = 0) { var maxDepth = currentDepth; foreach (var child in node.Children) { var deepestChildDepth = GetMaxDepth(child, currentDepth + 1); maxDepth = deepestChildDepth; } return(maxDepth); }
private void RemoveTaggedNodes(BuildTreeNodeViewModel tree, List <BuildTreeNodeViewModel> taggedNodes) { foreach (var node in tree.Children.ToList()) { if (taggedNodes.Contains(node)) { tree.Children.Remove(node); } else { RemoveTaggedNodes(node, taggedNodes); } } }
private static int SetCurrentDepths(BuildTreeNodeViewModel node, int currentDepth = 0) { node.CurrentTreeLevelDepth = currentDepth; var maxDepth = currentDepth; foreach (var child in node.Children) { var deepestChildDepth = SetCurrentDepths(child, currentDepth + 1); maxDepth = deepestChildDepth; } return(maxDepth); }
private static void SetBuildIsFromPullRequest(BuildTreeNodeViewModel node, bool parentIsPullRequest = false) { if (node is BranchGroupNodeViewModel asBranch && asBranch.IsPullRequest) { parentIsPullRequest = true; } foreach (var child in node.Children) { SetBuildIsFromPullRequest(child, parentIsPullRequest); } if (node is BuildNodeViewModel asBuild) { asBuild.IsFromPullRequest = parentIsPullRequest; } }
private void MergeInternal(BuildTreeNodeViewModel tree1, BuildTreeNodeViewModel tree2, List <BuildTreeNodeViewModel> taggedNodes) { var insertTarget = tree1; var nodeToInsert = tree2; var subTree = insertTarget.Children.FirstOrDefault(node => node.NodeSource.Equals(nodeToInsert.NodeSource) && !node.IsRemoving); if (subTree != null) { foreach (var child in nodeToInsert.Children) { MergeInternal(subTree, child, taggedNodes); } taggedNodes.Remove(subTree); subTree.BackendPropertiesChanged(); } else { tree1.Children.Add(nodeToInsert); taggedNodes.Remove(tree1); } }
private static void SetMaxDepths(BuildTreeNodeViewModel node, in int maxDepth)