Inheritance: PropertyNotifyObject
        private async Task Export(ProjectCollectionInfo projectCollection, TeamProjectInfo teamProject, string path)
        {
            string projectCollectionName = projectCollection.Name;
            string teamProjectName = teamProject.Name;

            string fileName = string.Format("{0}.xml", teamProjectName);
            string fullPath = System.IO.Path.Combine(path, fileName);

            await Tools.WitAdminService.ExportCategories(TFManager, projectCollectionName, teamProjectName, fullPath);
        }
        private async Task Import(ProjectCollectionInfo projectCollection, TeamProjectInfo teamProject, string fileName)
        {
            string projectCollectionName = projectCollection.Name;
            string teamProjectName = teamProject.Name;

            await Tools.WitAdminService.ImportProcessConfig(TFManager, projectCollectionName, teamProjectName, fileName);
        }
        private async Task<List<ProjectCollectionInfo>> GetProjectCollectionInfos(ITFManager tfManager)
        {
            var projectCollectionInfos = new List<ProjectCollectionInfo>();
            Progress.BeginWorking();
            try
            {
                await Task.Run(() =>
                {
                    var projectCollections = tfManager.ProjectCollections;
                    var teamProjects = tfManager.TeamProjects;

                    foreach (var projectCollection in projectCollections)
                    {
                        var teamProjectInfos = teamProjects[projectCollection.Key]
                            .Select(teamProjectItem =>
                                new TeamProjectInfo() { Name = teamProjectItem.Name, WorkItemTypeInfos = null, Categories = null, ProcessConfig = null }
                                ).ToArray();
                        var projColInfo = new ProjectCollectionInfo() { Name = projectCollection.Key, TeamProjectInfos = teamProjectInfos };
                        projectCollectionInfos.Add(projColInfo);
                    }
                });

                Progress.NextStep();
            }
            finally
            {
                Progress.EndWorking();
            }

            return projectCollectionInfos.ToList();
        }
        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);
        }