Ejemplo n.º 1
0
        static async Task <List <SharedFolderModel> > GetTeamMemberShares(DropboxTeamClient teamClient, string memberId)
        {
            if (_debug)
            {
                Console.WriteLine("-------------------------------------");
                Console.WriteLine("GetTeamMemberShares() called...");
            }

            // initialize here so sharedFolders in scope of return statement
            List <SharedFolderModel> sharedFolders = new List <SharedFolderModel>();

            _sharedFoldersListCount = 0;

            using (DropboxClient userClient = teamClient.AsMember(memberId))
            {
                ListFoldersResult sharedFoldersList = await userClient.Sharing.ListFoldersAsync();

                sharedFolders = await ProcessSharedFoldersList(userClient, sharedFoldersList);

                if (_debug)
                {
                    // before ...ContinueAsync() count
                    Console.WriteLine("----------------");
                    Console.WriteLine($"Total shared folders count: {_sharedFoldersListCount}");
                    Console.WriteLine($"Any more shared folders?  sharedFoldersList.Cursor: {sharedFoldersList.Cursor}");
                }

                // iterate over pages from userClient.Sharing.ListFoldersContinueAsync if list.Cursor is set
                while (sharedFoldersList.Cursor != null)
                {
                    if (_debug)
                    {
                        Console.WriteLine("----------------");
                        Console.WriteLine($"sharedFoldersList.Cursor not null: {sharedFoldersList.Cursor}");
                        Console.WriteLine("Preparing to continue...");
                    }

                    // sharedFoldersList.Cursor flips to null once all folders are listed via ListFoldersContinueAsync()
                    sharedFoldersList = await userClient.Sharing.ListFoldersContinueAsync(sharedFoldersList.Cursor);

                    List <SharedFolderModel> sharedFoldersCursorList = await ProcessSharedFoldersList(userClient, sharedFoldersList);

                    sharedFolders.AddRange(sharedFoldersCursorList);

                    if (_debug)
                    {
                        // after ...ContinueAsync() count
                        Console.WriteLine("----------------");
                        Console.WriteLine($"Total shared folders count with continue: {_sharedFoldersListCount}");
                    }
                }
            }

            return(sharedFolders);
        }
Ejemplo n.º 2
0
        static async Task <List <SharedFolderModel> > ProcessSharedFoldersList(DropboxClient userClient, ListFoldersResult listFoldersResult)
        {
            if (_debug)
            {
                Console.WriteLine("ProcessSharedFoldersList() called...");
            }

            List <SharedFolderModel> sharedFolders = new List <SharedFolderModel>();
            SharedFolderModel        sharedFolder;

            foreach (SharedFolderMetadata sharedFolderMetadata in listFoldersResult.Entries)
            {
                if (_debug)
                {
                    Console.WriteLine($"sharedFolderMetadata.PathLower: {sharedFolderMetadata.PathLower}");
                }

                // filter out shared folder has \"Not added\" status (no path or parent folder specified)
                if (!String.IsNullOrEmpty(sharedFolderMetadata.PathLower))
                {
                    sharedFolder = await MapSharedFolderMetadata(userClient, sharedFolderMetadata);

                    _sharedFoldersListCount++;

                    sharedFolders.Add(sharedFolder);
                }
            }

            return(sharedFolders);
        }