2013-05-28 4 views
5

के सदस्यों को प्राप्त करें मैंने अपनी कंपनी प्रोग्रामर के लिए एक टीएफएस समूह बनाया है और मैं उस समूह पर प्रोग्रामर की सूची प्राप्त करने की कोशिश कर रहा हूं। यह अब तक मैंने कोशिश की है।टीएफएस समूह

ICommonStructureService iss = (ICommonStructureService)tfsServer.GetService(typeof(ICommonStructureService)); 
    IGroupSecurityService gss = tfsServer.GetService<IGroupSecurityService>(); 

    Identity SIDS = gss.ReadIdentity(SearchFactor.AccountName, "Project Collection Valid Users", QueryMembership.Expanded); 
    Identity[] _userIds = gss.ReadIdentities(SearchFactor.Sid, SIDS.Members, QueryMembership.None); 

    var companyProgrammers = _userIds.Where(u=>u.MemeberOf.Contains("CompanyProgrammers")).ToList(); 

सूची खाली है।

क्या मुझे कुछ याद आ रही है?

उत्तर

12

यह Microsoft.TeamFoundation.Server.Identity ऑब्जेक्ट्स की एक सूची लौटाएगा जो वास्तविक टीएफएस उपयोगकर्ता हैं जिन्हें आप ढूंढ रहे हैं। फिर आप इन वस्तुओं को अपनी इकाइयों को क्रमबद्ध कर सकते हैं ताकि आप जो भी चाहें उसके बाद कर सकें।

यहाँ कि यह कैसे हुआ है:

private List<Identity> ListContributors() 
{ 
    const string projectName = "<<TFS PROJECT NAME>>"; 
    const string groupName = "Contributors"; 
    const string projectUri = "<<TFS PROJECT COLLECTION>>"; 

    TfsTeamProjectCollection projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri(projectUri)); 
    ICommonStructureService css = (ICommonStructureService) projectCollection.GetService(typeof(ICommonStructureService)); 
    IGroupSecurityService gss = projectCollection.GetService<IGroupSecurityService>(); 

    // get the tfs project 
    var projectList = css.ListAllProjects(); 
    var project = projectList.FirstOrDefault(o => o.Name.Contains(projectName)); 

    // project doesn't exist 
    if (project == null) return null; 

    // get the tfs group 
    var groupList = gss.ListApplicationGroups(project.Uri); 
    var group = groupList.FirstOrDefault(o => o.AccountName.Contains(groupName)); // you can also use DisplayName 

    // group doesn't exist 
    if (group == null) return null; 

    Identity sids = gss.ReadIdentity(SearchFactor.Sid, group.Sid, QueryMembership.Expanded); 

    // there are no users 
    if (sids.Members.Length == 0) return null; 

    // convert to a list 
    List<Identity> contributors = gss.ReadIdentities(SearchFactor.Sid, sids.Members, QueryMembership.Expanded).ToList(); 

    return contributors; 
} 
+0

IGroupSecurityService आजकल अप्रचलित है। नए एपीआई का उपयोग करके आप यह कैसे करेंगे? –

+2

अप्रचलित कोड। सुझाव के मुताबिक IIDentityManagementService या ISecurityService का उपयोग किया जाना चाहिए। क्या कोई जानता है कि उन इंटरफेस का उपयोग कैसे करें? – jwrightmail