Как получить все подписки на события для каждого пользователя в TFS, используя C#?

У меня есть требование, чтобы все пользователи, которые не получают сообщения электронной почты при редактировании связанных с ними 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, чьи электронные письма не появляются ни в одном событии из событий, и я получаю новый список пользователей.

Я спросил некоторых пользователей из списка, были ли они настроены, они доказали, что они были.

Кто-нибудь может указать мне, пожалуйста, в правильном направлении, получая список пользователей TFS, которые не подписаны на WorkItemChangeEvent.

PS: извините за мой плохой английский.

1 ответ

Служба, на которую вы звоните, вернет все события, на которые у вас есть разрешение. Если вы хотите, чтобы все события вам нужно будет создать учетную запись с соответствующими разрешениями.

Другие вопросы по тегам