private IEnumerable <Resource> ToProjectNodes( TreeStructureGroup treeStructureGroup, TeamProjectReference teamProject) { var rootAreaNode = GetNode(treeStructureGroup, teamProject); return(GetStructureResources("", rootAreaNode)); }
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); }
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); }
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)); }
/// <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(); }
/// <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)); }
/// <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)); }
public static WorkItemClassificationNode GetFullTree(this AzureContext azureContext, string project, TreeStructureGroup type) { return(azureContext.GetHttpClientWorkItem().GetClassificationNodeAsync(project, type, null, 1000).Result); }
private WorkItemClassificationNode GetNode( TreeStructureGroup treeStructureGroup, TeamProjectReference teamProject) { return(_facade.GetClassificationNode(teamProject.Name, treeStructureGroup)); }
private IEnumerable <Resource> GetStructureResources(TreeStructureGroup treeStructureGroup) { return(GetProjects().SelectMany(teamProject => ToProjectNodes(treeStructureGroup, teamProject))); }
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); } }
public WorkItemClassificationNode GetClassificationNode(string teamProjectName, TreeStructureGroup group) { return(_workItemTrackingHttpClient.GetClassificationNodeAsync(teamProjectName, group, depth: 999).Result); }