c# - 如何获取分层格式的 TFS 待办事项列表?

标签 c# .net tfs tfs-workitem

我试图列出我所有的待办事项,但一些待办事项有子待办事项。我想以这种方式列出它们:BackLogItemParent/BackLogItemChild1/BackLogItemChild2 等,无论每个父项目有多少 child 。

我可以获得所有积压项目:

public WorkItemCollection BackLogItems()
        {
            WorkItemCollection results = this.tfsWorkItemStore.Query(
                "Select [System.Id], [System.Title] " +
                "From WorkItems " +
                "Where [Work Item Type] = 'Product BackLog Item' " +
                "And [System.Title] <> '<unused>' " +
                "Order By [System.Title] Asc"
                );

            return results;
        }

并可能做类似的事情:

 private WorkItem GetChildBackLogItems(WorkItem wi)
        {                
            foreach (WorkItemLink wil in wi.WorkItemLinks) 
            {                    
             //some sort of recursive call to get all links if backlog is a parent
             //but may need to filter out by top parent items first.
            }
            return wi;
        }

但是我无法按照我想要的方式创建列表,因为我不太了解代码中链接的表示方式。我怀疑我可能需要改用 workitemlinks 表。

在团队资源管理器中有一个“工作项目树”查询类型,它以分层方式列出这些项目,我想我正在尝试做类似的事情,只是更扁平一些。

如有任何帮助,我们将不胜感激。

最佳答案

如果您在 Visual Studio 中创建了一个包含您想要的内容的查询,您可以使用“另存为...”将其保存到桌面。这将是一个“层次结构”查询。

然后,您可以通过将查询传递给 WorkItemStore.Query() 来获取整个工作项列表作为平面列表。

之后,您可以在代码中迭代和构建您的树。

关于c# - 如何获取分层格式的 TFS 待办事项列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25793865/

相关文章:

c# - 如何获得完全合格的程序集名称

.net - 终止互操作应用程序进程

c# - CngKey.Import(...);在 PC 上成功但在 Web 主机上失败

git - 将 tfs 分支迁移到 Azure 中的 git 存储库

.net - 如何使用 TFS 2010 SDK 获取分支的所有未合并变更集?

c# - DbTransaction 的Commit() 或Rollback() 抛出异常如何处理?

c# - 为什么将字符串路径转换为 ​​Geometry 并再次返回会抛出 FormatException?

c# - Tls 1.2 或 Tls 1.0 与 .net 框架 4.0

.net - 如何将属性声明为仅限于继承基类的类的泛型类型?

tfs - 在 TFS 2012 beta 中构建失败,但解决方案在 Visual Studio 2012 RC 中成功构建