【发布时间】: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,你能指导我如何完成这项任务吗,谢谢。