如何使用C#为TFS中的每个用户获取所有事件订阅?

时间:2015-02-03 08:21:13

标签: c# tfs tfs2010 tfs-workitem tfs-alerts

我有一个要求,即在编辑与其相关的WorkItems时,不会收到所有未收到电子邮件的用户。 正如我所说,TFS根据某种事件提供警报,每个用户都必须是特定事件的订阅者。

我可以使用下面的代码获取所有事件

IEventService es = tfs.GetService(typeof(IEventService)) as IEventService;
Subscription[] events = es.GetAllEventSubscriptions();

之后我将所有身份提取出来

IGroupSecurityService gss = (IGroupSecurityService)tfsIdent.GetService(typeof(IGroupSecurityService));
Identity SIDS = gss.ReadIdentity(SearchFactor.AccountName, "Project Collection Valid Users", QueryMembership.Expanded);
Identity[] UserId = gss.ReadIdentities(SearchFactor.Sid, SIDS.Members, QueryMembership.Direct);

最后一步我从UserId中提取所有用户的电子邮件在事件的任何事件中都没有,我得到一个新的用户列表。

我向列表中的一些用户询问他们是否设置了警报,他们证明他们有。

任何人都可以指出我正确的方向,指出未订阅WorkItemChangeEvent的TFS用户列表。

PS:抱歉我的英语不好。

1 个答案:

答案 0 :(得分:1)

您正在呼叫的服务将返回您有权查看的所有事件。如果您想要所有活动,则需要创建具有相应权限的帐户。