コード例 #1
0
        private IEnumerable <Resource> ToProjectNodes(
            TreeStructureGroup treeStructureGroup, TeamProjectReference teamProject)
        {
            var rootAreaNode = GetNode(treeStructureGroup, teamProject);

            return(GetStructureResources("", rootAreaNode));
        }
コード例 #2
0
        public List <string> GetFullTree(string project, TreeStructureGroup type)
        {
            VssConnection connection = Context.Connection;
            WorkItemTrackingHttpClient workItemTrackingClient = connection.GetClient <WorkItemTrackingHttpClient>();

            WorkItemClassificationNode rootNode = workItemTrackingClient.GetClassificationNodeAsync(project, type, null, 1000).Result;

            List <string> paths = new List <string>();

            ShowNodeTree(rootNode);

            return(paths);
        }
コード例 #3
0
        public List <string> GetFullTree(string project, TreeStructureGroup type)
        {
            List <string> list = new List <string>();

            VssConnection connection = new VssConnection(_uri, _credentials);
            WorkItemTrackingHttpClient workItemTrackingHttpClient = connection.GetClient <WorkItemTrackingHttpClient>();
            WorkItemClassificationNode result = workItemTrackingHttpClient.GetClassificationNodeAsync(project, type, null, 1000).Result;

            list.Add(result.Name);

            foreach (var item in result.Children)
            {
                var name = result.Name + "/" + item.Name;

                list.Add(name);
                walkTreeNode(item, list, name);
            }

            return(list);
        }
コード例 #4
0
 public async static Task <WorkItemClassificationNode> GetClassificationNode(WorkItemTrackingHttpClient client, string project, TreeStructureGroup structureGroup)
 {
     Logger.LogInformation(LogDestination.File, $"Getting classification node for {client.BaseAddress.Host}");
     return(await RetryHelper.RetryAsync(async() =>
     {
         return await client.GetClassificationNodeAsync(project, structureGroup, depth: int.MaxValue);
     }, 5));
 }
コード例 #5
0
        /// <summary>
        /// Remove area or iteration
        /// </summary>
        /// <param name="TeamProjectName"></param>
        /// <param name="NodePath"></param>
        /// <param name="NewNodePath"></param>
        /// <param name="treeStructureGroup"></param>
        static void DeleteClassificationNode(string TeamProjectName, string NodePath, string NewNodePath, TreeStructureGroup treeStructureGroup)
        {
            WorkItemClassificationNode node = WitClient.GetClassificationNodeAsync(
                TeamProjectName,
                treeStructureGroup,
                NewNodePath, 4).Result;

            WitClient.DeleteClassificationNodeAsync(TeamProjectName, treeStructureGroup, NodePath, node.Id).SyncResult();
        }
コード例 #6
0
        /// <summary>
        /// Move area or iteration to new path
        /// </summary>
        /// <param name="TeamProjectName"></param>
        /// <param name="NodePath"></param>
        /// <param name="NewParentNodePath"></param>
        /// <param name="treeStructureGroup"></param>
        /// <returns></returns>
        static WorkItemClassificationNode MoveClassificationNode(string TeamProjectName, string NodePath, string NewParentNodePath, TreeStructureGroup treeStructureGroup)
        {
            WorkItemClassificationNode node = WitClient.GetClassificationNodeAsync(
                TeamProjectName,
                treeStructureGroup,
                NodePath, 4).Result;

            return(UpdateClassificationNode(TeamProjectName, node, NewParentNodePath));
        }
コード例 #7
0
        /// <summary>
        /// Rename area or iteration
        /// </summary>
        /// <param name="TeamProjectName"></param>
        /// <param name="NodePath"></param>
        /// <param name="NewNodeName"></param>
        /// <param name="treeStructureGroup"></param>
        /// <returns></returns>
        static WorkItemClassificationNode RenameClassificationNode(string TeamProjectName, string NodePath, string NewNodeName, TreeStructureGroup treeStructureGroup)
        {
            WorkItemClassificationNode node = WitClient.GetClassificationNodeAsync(
                TeamProjectName,
                treeStructureGroup,
                NodePath, 4).Result;

            string parentPath = GetParentNodePath(NodePath, node.Name);

            node.Name = NewNodeName;

            return(UpdateClassificationNode(TeamProjectName, node, parentPath));
        }
コード例 #8
0
 public static WorkItemClassificationNode GetFullTree(this AzureContext azureContext, string project, TreeStructureGroup type)
 {
     return(azureContext.GetHttpClientWorkItem().GetClassificationNodeAsync(project, type, null, 1000).Result);
 }
コード例 #9
0
 private WorkItemClassificationNode GetNode(
     TreeStructureGroup treeStructureGroup, TeamProjectReference teamProject)
 {
     return(_facade.GetClassificationNode(teamProject.Name, treeStructureGroup));
 }
コード例 #10
0
 private IEnumerable <Resource> GetStructureResources(TreeStructureGroup treeStructureGroup)
 {
     return(GetProjects().SelectMany(teamProject => ToProjectNodes(treeStructureGroup, teamProject)));
 }
コード例 #11
0
        private void SaveClassificationNodesRecursive(Guid projectId, WorkItemClassificationNode classificationNode, TreeStructureGroup structureGroup, string pathToParent = null)
        {
            try
            {
                var result = workClient.CreateOrUpdateClassificationNodeAsync(
                    classificationNode,
                    projectId.ToString(),
                    structureGroup,
                    pathToParent).Result;

                Logger.Info($"{GetType()} Saved type {structureGroup} '{pathToParent}\\{classificationNode.Name}'");
            }
            catch (Exception)
            {
                // Intentionally eating the e
                Logger.Error($"{GetType()} Failed saving type {structureGroup} '{pathToParent}\\{classificationNode.Name}', does it already exist?");
            }

            if (classificationNode.HasChildren != true)
            {
                return;
            }

            var newPathToParent = $"{pathToParent}\\{classificationNode.Name}";

            foreach (var classificationNodeChild in classificationNode.Children)
            {
                SaveClassificationNodesRecursive(projectId, classificationNodeChild, structureGroup, newPathToParent);
            }
        }
コード例 #12
0
 public WorkItemClassificationNode GetClassificationNode(string teamProjectName, TreeStructureGroup group)
 {
     return(_workItemTrackingHttpClient.GetClassificationNodeAsync(teamProjectName, group, depth: 999).Result);
 }