目前我可以通过以下代码获取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);
答案 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