private static void MigrateQueries() { if (string.IsNullOrEmpty(_config.Queries.PathFind)) { WriteLine($"{nameof(AppConfig.Queries)}.{nameof(AppConfig.Queries.PathFind)} is missing for Query Migration!", ConsoleColor.Red); return; } if (string.IsNullOrEmpty(_config.Queries.PathReplace)) { WriteLine($"{nameof(AppConfig.Queries)}.{nameof(AppConfig.Queries.PathReplace)} is missing for Query Migration!", ConsoleColor.Red); return; } var baseQueryFolder = TfsStatic.GetWorkItemQuery(true, _config.Queries.PathFind, QueryExpand.minimal, 1); if (!baseQueryFolder.isFolder) { WriteLine($"{_config.Queries.PathFind} does not refer to a query folder!", ConsoleColor.Red); return; } string sourceProjectName = TfsStatic.GetTeamProjectName(true); string sourceTeamName = _config.SourceTeamName; string targetProjectName = TfsStatic.GetTeamProjectName(false); string targetTeamName = _config.TargetTeamName; CopyQueryFolder(baseQueryFolder, sourceProjectName, sourceTeamName, targetProjectName, targetTeamName); }
private static void CopyQueryFolder(WorkItemQuery queryFolder, string sourceProjectName, string sourceTeamName, string targetProjectName, string targetTeamName) { WriteLine($"{queryFolder.path}"); if (!queryFolder.isFolder || queryFolder.children.Length == 0) { return; } foreach (var childQueryFolder in queryFolder.children.Where(o => o.isFolder)) { var childQueryFolderObject = TfsStatic.GetWorkItemQuery(true, childQueryFolder.id, QueryExpand.minimal, 1); CopyQueryFolder(childQueryFolderObject, sourceProjectName, sourceTeamName, targetProjectName, targetTeamName); } foreach (var query in queryFolder.children.Where(o => !o.isFolder)) { WriteLine($"\t- {query.name}"); QueryTools.CopyQuery(new Tools.Parameters.CopyQueryParameters { QueryId = query.id, QueryReplacements = _config.Queries, }, sourceProjectName, sourceTeamName, targetProjectName, targetTeamName); } }