2013-08-18 37 views
1

我的目標是獲取用戶所在teamproject中的用戶的全部信息。然後,我想要獲取用戶的電子郵件地址並向他們發送他們分配的任務的ID。 (這是一個鍛鍊)使用C#獲取TFS 2012中團隊項目的用戶列表

我在連接到服務器用下面的代碼成功:

TfsTeamProjectCollection tfs = new TfsProjectCollection(new Uri(tfsUri)); 
ITeamProjectCollectionService tpcService = tfs.GetService<ITeamProjectCollectionService>(); 

,但我不知道如何從這個點繼續。

我搜索了一個解決方案,但沒有找到任何好的材料。

回答

3

您可以使用IIDentityManagementService從TFS Api中檢索(所有)用戶。

IIdentityManagementService identityManagementService = tpcService.GetService<IIdentityManagementService>(); 
     TeamFoundationIdentity[][] identities = IdentityManagementService.ReadIdentities(IdentitySearchFactor.AccountName, 
      new[] { "Project Collection Valid Users" }, MembershipQuery.Expanded, ReadIdentityOptions.ExtendedProperties); 

,然後打印出所有電子郵件

foreach (var user in identities){ 
    Console.WriteLine(user.GetAttribute("Mail", null)); 
    } 
+0

嗨,理查德!你能解釋一下「用戶」是什麼嗎?你能解釋我如何實現它嗎? –

+0

我編輯了我的答案。希望你現在得到它。用戶是TeamFoundationIdentity。 –

2
_identityManagementService = _collection.GetService<IIdentityManagementService2>(); 
var validUsers = _identityManagementService.ReadIdentities(IdentitySearchFactor.AccountName, new[] { "Project Collection Valid Users" }, MembershipQuery.Expanded, ReadIdentityOptions.None)[0][0].Members; 
var users = _identityManagementService.ReadIdentities(validUsers, MembershipQuery.None, ReadIdentityOptions.None).Where(x => !x.IsContainer).ToArray(); 

users將舉行簡單的對象,在調試檢查對象,以查看可用的屬性。 在第二個ReadIdentities中,您可以使用MembershipQueryReadIdentityOptions參數來獲取關於用戶的更多信息。

相關問題