2017-09-19 12 views
1

Ich benutze Microsoft.Graph und ich möchte eine Liste aller Benutzer in bestimmten Gruppen zurückgeben. Ich kann keine verdaulichen Informationen darüber finden.Microsoft.Graph alle Benutzer einer Gruppe

Ich habe versucht, .Request().Expand(x => x.Members) verwenden, aber das gibt nur 20 Benutzer zurück. Und sie werden nicht ausgelagert (siehe here).

Ich kann eine Liste von Gruppen in Ordnung ziehen, aber wie kann ich Benutzer basierend auf der Gruppe filtern, in der sie sich befinden? Das ist, was ich so weit gekommen ...

public async Task Do() 
{ 
    var graphClient = new GraphServiceClient(_authProvider); 
    var groups = await graphClient.Groups.Request().GetAsync(); 

    do 
    { 
     foreach (var group in groups) 
     { 
      Console.WriteLine($"{group.Id}, {group.DisplayName}"); 
      Console.WriteLine("------"); 

      var filter = $""; // What goes here? 
      var users = await graphClient.Users.Request().Filter(filter).GetAsync(); 

      do 
      { 
       foreach (var user in users) 
       { 
        Console.WriteLine($"{user.Id}, {user.GivenName} {user.Surname}, {user.MemberOf}"); 
       } 
      } 
      while (users.NextPageRequest != null && (users = await users.NextPageRequest.GetAsync()).Count > 0); 

      Console.WriteLine(); 
     } 
    } 
    while (groups.NextPageRequest != null && (groups = await groups.NextPageRequest.GetAsync()).Count > 0); 
} 

Antwort

1

So etwas wie das funktioniert

public async Task Do() 
{ 
    var graphClient = new GraphServiceClient(_authProvider); 

    var groups = await graphClient.Groups.Request().GetAsync(); 

    do 
    { 
     foreach (var group in groups) 
     { 
      Console.WriteLine($"{group.Id}, {group.DisplayName}"); 
      Console.WriteLine("------"); 

      var users = await graphClient.Groups[group.Id].Members.Request().GetAsync(); 

      do 
      { 
       foreach (var user in users) 
       { 
        Console.WriteLine($"{user.Id}"); 
       } 
      } 
      while (users.NextPageRequest != null && (users = await users.NextPageRequest.GetAsync()).Count > 0); 

      Console.WriteLine("------"); 
      Console.WriteLine(); 
     } 
    } 
    while (groups.NextPageRequest != null && (groups = await groups.NextPageRequest.GetAsync()).Count > 0); 
} 
Verwandte Themen