static List <FolderMemberUserModel> ProcessApiFolderMemberUsers(SharedFolderMembers sharedFolderMembers) { if (_debug) { Console.WriteLine("-------------------------------------"); Console.WriteLine("ProcessApiFolderMemberUsers() called..."); } List <FolderMemberUserModel> folderMemberUsers = new List <FolderMemberUserModel>(); FolderMemberUserModel folderMemberUser; List <UserMembershipInfo> apiFolderMemberUsers = sharedFolderMembers.Users.ToList(); foreach (UserMembershipInfo apiFolderMemberUser in apiFolderMemberUsers) { folderMemberUser = MapFolderMemberUser(apiFolderMemberUser); _folderMemberUsersListCount++; folderMemberUsers.Add(folderMemberUser); } if (_debug) { Console.WriteLine("----------------"); Console.WriteLine($"folderMemberUsers.Count: {folderMemberUsers.Count}"); } return(folderMemberUsers); }
static async Task <string> GetSharedFolderOwner(DropboxClient userClient, string sharedFolderId) { if (_debug) { Console.WriteLine("-------------------------------------"); Console.WriteLine("GetSharedFolderOwner() called..."); } string sharedFolderOwner = ""; SharedFolderMembers sharedFolderMembers = await userClient.Sharing.ListFolderMembersAsync(sharedFolderId); UserMembershipInfo userMembershipInfo = sharedFolderMembers.Users.FirstOrDefault(i => i.AccessType.IsOwner); if (userMembershipInfo != null) { sharedFolderOwner = userMembershipInfo.User.Email; } if (_debug) { // before ...ContinueAsync() Console.WriteLine("----------------"); Console.WriteLine($"sharedFolderOwner before cursor check: {sharedFolderOwner}"); Console.WriteLine($"Any more owners? sharedFolderMembers.Cursor: {sharedFolderMembers.Cursor}"); } while (sharedFolderMembers.Cursor != null) { if (_debug) { Console.WriteLine("----------------"); Console.WriteLine($"sharedFolderMembers.Cursor not null: {sharedFolderMembers.Cursor}"); Console.WriteLine("Preparing to continue..."); } // sharedFolderMembers.Cursor flips to null once all folders are listed via ListFolderMembersContinueAsync() sharedFolderMembers = await userClient.Sharing.ListFolderMembersContinueAsync(sharedFolderMembers.Cursor); userMembershipInfo = sharedFolderMembers.Users.FirstOrDefault(i => i.AccessType.IsOwner); if (userMembershipInfo != null) { sharedFolderOwner = userMembershipInfo.User.Email; } if (_debug) { // after ...ContinueAsync() count Console.WriteLine("----------------"); Console.WriteLine($"sharedFolderOwner: {sharedFolderOwner}"); } } return(sharedFolderOwner); }
static async Task <List <FolderMemberUserModel> > GetSharedFolderUsers(DropboxClient userClient, string sharedFolderId) { if (_debug) { Console.WriteLine("-------------------------------------"); Console.WriteLine("GetSharedFolderUsers() called..."); } SharedFolderMembers sharedFolderMembers = await userClient.Sharing.ListFolderMembersAsync(sharedFolderId); _folderMemberUsersListCount = 0; List <FolderMemberUserModel> sharedFolderMemberUsers = ProcessApiFolderMemberUsers(sharedFolderMembers); if (_debug) { // before ...ContinueAsync() count Console.WriteLine("----------------"); Console.WriteLine($"Total shared folders members: {_folderMemberUsersListCount}"); Console.WriteLine($"Any more shared folder members? sharedFoldersList.Cursor: {sharedFolderMembers.Cursor}"); } // iterate over pages from userClient.Sharing.ListFoldersContinueAsync if list.Cursor is set while (sharedFolderMembers.Cursor != null) { if (_debug) { Console.WriteLine("----------------"); Console.WriteLine($"sharedFolderMembers.Cursor not null: {sharedFolderMembers.Cursor}"); Console.WriteLine("Preparing to continue..."); } // sharedFolderMembers.Cursor flips to null once all folders are listed via ListFolderMembersContinueAsync() sharedFolderMembers = await userClient.Sharing.ListFolderMembersContinueAsync(sharedFolderMembers.Cursor); List <FolderMemberUserModel> sharedFolderMembersCursorList = ProcessApiFolderMemberUsers(sharedFolderMembers); if (_debug) { Console.WriteLine($"_folderMemberUsersListCount: {_folderMemberUsersListCount}"); } sharedFolderMemberUsers.AddRange(sharedFolderMembersCursorList); if (_debug) { // after ...ContinueAsync() count Console.WriteLine("----------------"); Console.WriteLine($"Total shared folder members count with continue: {_sharedFoldersListCount}"); } } return(sharedFolderMemberUsers); }