Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }