1

関連する WorkItem が編集されたときに電子メール アラートを受信しないすべてのユーザーを取得する必要があります。私が推測するように、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: 下手な英語で申し訳ありません。

4

1 に答える 1

1

呼び出しているサービスは、表示する権限があるすべてのイベントを返します。すべてのイベントが必要な場合は、適切な権限を持つアカウントを作成する必要があります。

于 2015-02-03T17:18:41.913 に答える