Как получить все подписки на события для каждого пользователя в 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 ответ
Служба, на которую вы звоните, вернет все события, на которые у вас есть разрешение. Если вы хотите, чтобы все события вам нужно будет создать учетную запись с соответствующими разрешениями.