public static async Task <User[]> GetAllAsync(this IGroupMembersCollectionWithReferencesRequest request)
        {
            var collectionPage = await request.GetAsync();

            return(await GetAllAsync(collectionPage)
                   .ContinueWith(i => i.Result.OfType <User>().ToArray()));
        }
        // GET group members and page through the results (10 at a time)
        public async Task <ActionResult> GroupMembers(string groupId, string nextLink)
        {
            // Show the profile of a user after a user is clicked from the search.
            var         client      = GetGraphServiceClient();
            List <User> userMembers = new List <User>();
            IGroupMembersCollectionWithReferencesPage    members        = new GroupMembersCollectionWithReferencesPage();
            IGroupMembersCollectionWithReferencesRequest membersRequest = null;

            try
            {
                if (groupId != null)
                {
                    var group = await client.Groups[groupId].Request().Select("displayName,id").GetAsync();
                    ViewBag.groupId   = groupId;
                    ViewBag.groupName = group.DisplayName;
                    membersRequest    = client.Groups[groupId].Members.Request().Top(10);
                }
                members = await membersRequest.GetAsync();

                foreach (DirectoryObject d in members.CurrentPage)
                {
                    User u = d as User;
                    userMembers.Add(u);
                }
            }
            catch (Exception)
            {
                // no users?
            }
            return(View(userMembers));
        }
 /// <summary>
 /// Initializes the NextPageRequest property.
 /// </summary>
 public void InitializeNextPageRequest(IBaseClient client, string nextPageLinkString)
 {
     if (!string.IsNullOrEmpty(nextPageLinkString))
     {
         this.NextPageRequest = new GroupMembersCollectionWithReferencesRequest(
             nextPageLinkString,
             client,
             null);
     }
 }
        public static async Task <DirectoryObject[]> GetAllAsync(this IGroupMembersCollectionWithReferencesRequest pagedCollectionRq)
        {
            var list = new List <DirectoryObject>();

            var collectionRequest = pagedCollectionRq;

            while (true && collectionRequest != null)
            {
                var pageList = await collectionRequest.GetAsync();

                if (pageList.CurrentPage.Count > 0)
                {
                    list.AddRange(pageList.CurrentPage);
                    collectionRequest = pageList.NextPageRequest;
                }
                else
                {
                    break;
                }
            }
            return(list.ToArray());
        }
Exemple #5
0
        public static async Task <DirectoryObject[]> GetAllAsync(this IGroupMembersCollectionWithReferencesRequest request)
        {
            var collectionPage = await request.GetAsync();

            return(await GetAllAsync(collectionPage));
        }