Where does Team Members power tool get the Users list from ?

Basically, the team members power tool displays the list of users in the “[TEAMPROJECT]\Contributors” group of your team project recursively. To customize which group is the one to be displayed you can right click on the team project –> Team Project Settings –> Team Members and select the group you want to get displayed in the node.

You can get this list programmatically by accessing the Identity Management Service. This is a sample code that will do so :

    1: using System;
    2: using Microsoft.TeamFoundation.Client;
    3: using Microsoft.TeamFoundation.Framework.Client;
    4: using Microsoft.TeamFoundation.Framework.Common;
    5:  
    6: namespace DisplayTeamMembers
    7: {
    8:     class Program
    9:     {
   10:         static void Main(string[] args)
   11:         {
   12:             string serverName = @"https://SERVERNAME:8080/DefaultCollection";
   13:             string groupName = @"[ProjectName]\Contributors";
   14:  
   15:             TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri(serverName));
   16:             
   17:             //1.Get the Idenitity Management Service
   18:             IIdentityManagementService ims = tfs.GetService<IIdentityManagementService>();
   19:  
   20:             //2.Read the group represnting the root node
   21:             TeamFoundationIdentity rootIdentity = ims.ReadIdentity(IdentitySearchFactor.AccountName,
   22:                 groupName, MembershipQuery.Direct, ReadIdentityOptions.None);
   23:  
   24:             //3.Recursively parse the members of the group
   25:             DisplayGroupTree(ims, rootIdentity, 0);
   26:  
   27:             //4.Exit
   28:             Console.WriteLine("Press any key to exit...");
   29:             Console.ReadKey();
   30:         }
   31:  
   32:         private static void DisplayGroupTree(IIdentityManagementService ims, TeamFoundationIdentity node, 
   33:             int level)
   34:         {
   35:             DisplayNode(node, level);
   36:  
   37:             if (!node.IsContainer)
   38:                 return;
   39:  
   40:             TeamFoundationIdentity[] nodeMembers = ims.ReadIdentities(node.Members, MembershipQuery.Direct, 
   41:                 ReadIdentityOptions.None);
   42:  
   43:             int newLevel = level + 1;
   44:             foreach (TeamFoundationIdentity member in nodeMembers)
   45:                 DisplayGroupTree(ims, member, newLevel);
   46:         }
   47:  
   48:         private static void DisplayNode(TeamFoundationIdentity node, int level)
   49:         {
   50:             for (int tabCount = 0; tabCount < level; tabCount++) Console.Write("\t");
   51:  
   52:             Console.WriteLine(node.DisplayName);
   53:         }
   54:     }
   55: }

Comments

  • Anonymous
    November 04, 2015
    Very Nice and Working code to get the list of members from TFS  Group using IIdentityManagementService. Thanks for this great post.