private async Task Export() { ProjectCollectionInfo projectCollection = Tools.CurrentProjectCollection; TeamProjectInfo[] teamProjects; if (IsAllTeamProjects) { teamProjects = projectCollection.TeamProjectInfos; foreach (TeamProjectInfo teamProject in teamProjects) { if (teamProject.WorkItemTypeInfos == null) { await Tools.GetAllTeamProjectsWITypes(); break; } } } else teamProjects = new TeamProjectInfo[] { Tools.CurrentTeamProject }; foreach (TeamProjectInfo teamProject in teamProjects) { WorkItemTypeInfo[] workItemTypeInfos; string path = Path; if (IsAllTeamProjects) { path = System.IO.Path.Combine(path, teamProject.Name); System.IO.Directory.CreateDirectory(path); } workItemTypeInfos = (IsAllWorkItemTypes) ? teamProject.WorkItemTypeInfos : workItemTypeInfos = new WorkItemTypeInfo[] { Tools.CurrentWorkItemType }; Tools.Progress.BeginWorking(workItemTypeInfos.Length); try { foreach (WorkItemTypeInfo workItemTypeInfo in workItemTypeInfos) { try { await Export(projectCollection, teamProject, workItemTypeInfo, path); Tools.Progress.NextStep(); } catch (WitAdminException) { Tools.Progress.FailStep(); } } } finally { Tools.Progress.EndWorking(); } } }
private async Task Export(ProjectCollectionInfo projectCollection, TeamProjectInfo teamProject, WorkItemTypeInfo workItemType, string path) { string projectCollectionName = projectCollection.Name; string teamProjectName = teamProject.Name; string workItemTypeName = workItemType.Name; string fileName = string.Format("{0}.xml", workItemTypeName); string fullPath = System.IO.Path.Combine(path, fileName); await Tools.WitAdminService.ExportWorkItemDefenition(TFManager, projectCollectionName, teamProjectName, workItemTypeName, fullPath); }