在TFS积压板中按列名获取工作项

时间:2014-05-14 14:10:59

标签: c# visual-studio tfs

我的待办事项中有一个带有自定义列的电路板。有没有办法在特定列中获取所有用户故事

我有两个具有相同状态'活动'的列,所以我不能按状态过滤,我需要按列名称进行过滤。例如,我需要获得用户故事'在列' A' (状态有效)无需返回用户故事'在专栏' B' (也有效)。

更新:程序无法在安装了TFS的同一台计算机上运行。我需要在客户端这样做。

public class Program
{
    static void Main(string[] args)
    {
        Uri collectionUri = new Uri("http://tfs-server/tfs");

        TfsConfigurationServer configurationServer =
            TfsConfigurationServerFactory.GetConfigurationServer(collectionUri);

        ReadOnlyCollection<CatalogNode> collectionNodes = configurationServer.CatalogNode.QueryChildren(
            new[] { CatalogResourceTypes.ProjectCollection },
            false,
            CatalogQueryOptions.None);

        Guid collectionId = new Guid(collectionNodes[0].Resource.Properties["InstanceId"]);
        TfsTeamProjectCollection teamProjectCollection = configurationServer.GetTeamProjectCollection(collectionId);

        var workStore = teamProjectCollection.GetService<WorkItemStore>();

        var storiesInA = workStore.Query(
                       @" Select [State], [Title] From WorkItems
                        Where
                            [Work Item Type] = 'User Story' and
                            [State] = 'Active' and
                            [System.AreaPath] = 'MyPath'
                        Order By [State] Asc, [Changed Date] Desc");
    }
}

1 个答案:

答案 0 :(得分:2)

看板列特定于团队,需要通过团队特定的上下文进行访问。您可以通过TFS中的WorkItemTypeExtensionService访问它。你可以在这里找到答案: