TFS API,我如何获得"分配给"某些群组的用户(" In Group")

时间:2016-02-26 04:59:37

标签: c# tfs tfs-sdk

目前我可以通过以下代码获取TFS for AssignedTo Field的所有用户:

var tfs = TeamFoundationServerFactory.GetServer("http://vstspioneer:8080/tfs/VSTSDF");
var workItemStore = (WorkItemStore)tfs.GetService(typeof(WorkItemStore));
var allowedValues = workItemStore.FieldDefinitions[CoreField.AssignedTo].AllowedValues;

foreach (String value in allowedValues)
{
    Console.WriteLine(value);
}

但我的要求是只提取属于某个群组的用户(" 在群组")。

我知道我们可以使用FilteredAllowedValues和过滤器。但我的问题是,如果我们只想获取某些组成员,可以在过滤器中添加什么。

var filters = new FieldFilterList();
  filters.Add(new FieldFilter(workItemStore.FieldDefinitions[CoreField.AssignedTo], ????));

var allowedValues = workItemStore.FieldDefinitions[CoreField.AssignedTo].FilteredAllowedValues(filters);

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以先使用IIdentityManagementService.ListApplicationGroups方法获取所有应用程序组:

var sec = tfs.GetService<IIdentityManagementService>();
Identity[] appGroups = sec.ListApplicationGroups(teamProject.ArtifactUri.AbsoluteUri);

然后,您可以使用IIdentityManagementService.ReadIdentities方法获取应用程序组中的所有成员。

此博客提供了更多详细信息,您可以查看它:http://geekswithblogs.net/TarunArora/archive/2011/09/30/tfs-sdk-get-groups-users-permissions-using-tfs-api-with.aspx