【问题标题】:How to get query names that references the particular iteration path如何获取引用特定迭代路径的查询名称
【发布时间】:2015-08-14 19:56:19
【问题描述】:

使用选定的项目名称,我已经加载了迭代路径。现在我需要获取引用所选迭代路径的查询名称。

通过项目名称加载迭代路径的代码:

        private void LoadIterationPaths(string projectName)
        {
            var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(_tfs.Uri);
            var wiStore = tfs.GetService<WorkItemStore>();
            var projCollections = wiStore.Projects;

            var detailsOfTheSelectedProject = projCollections.Cast<Project>().Where(project => !String.IsNullOrEmpty(_selectedTeamProject.Name))
                                                                        .FirstOrDefault(project => project.Name.Contains(_selectedTeamProject.Name));
            var iterationPathsList = GetIterationPaths(detailsOfTheSelectedProject);

            foreach (var iterationPath in iterationPathsList.Where(iterationPath => iterationPath.Contains(projectName)))
            {
                cmbIterationPath.Items.Add(iterationPath);
            }
            cmbIterationPath.Enabled = cmbIterationPath.Items.Count > 0;
        }

现在,我需要获取引用所选迭代路径的查询名称列表。谢谢。

注意:我可以获取项目中的所有查询名称,但我不需要。 为此,我使用了以下代码

foreach (StoredQuery qi in detailsOfTheSelectedProject.StoredQueries)
        {
            cmbQueries.Items.Add(qi.Name);
        }

【问题讨论】:

  • 查询引用迭代路径是什么意思?有“迭代路径”规则的查询?
  • @BeytanKurt,如果我从迭代路径下拉列表中选择xxx.WebSites/yyy,我需要在下一个下拉列表中绑定query names,其中所有上述iteration path 都存在。谢谢。 注意:我可以获取项目中的所有查询名称,但我不需要。谢谢。
  • TFS 工作项查询只是用半语言 (Work Item Query Language) 编写的文本,它们不引用任何其他工作项属性,您可以在后面的代码中使用这些属性。因此,您只能通过获取所有查询项的 QueryText 属性并读取其内容来使用文本搜索。
  • 我认为您需要在 StoredQuery.QueryText 属性中解析 WIQL。可能一些不太聪明的正则表达式可以完成这项工作。
  • @GiulioVian,你能指导我如何完成这项任务吗,谢谢。

标签: c# .net tfs tfs-sdk


【解决方案1】:

你的代码应该是这样的

string selectedIterationPath = ... foreach (StoredQuery qi in detailsOfTheSelectedProject.StoredQueries) { if (qi.QueryText.Contains(selectedIterationPath) { cmbQueries.Items.Add(qi.Name); } }

这就是我和 Beytan Kurt 在 cmets 中的建议。 而不是愚蠢的Contains,您应该使用Regular Expression 来解释误报和误报。

【讨论】:

    猜你喜欢
    • 2015-08-15
    • 2023-01-11
    • 2020-07-15
    • 1970-01-01
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多