Example #1
0
        private async Task LoadFromFolderBrowser(IFolderBrowser browser)
        {
            IList <string> folderFiles = browser.GetFiles();

            if (files.Count >= 20000 && !highFlag)
            {
                Messenger.PostMessage("Over 20000 files!! Don't worry, we'll get there ...",
                                      Messenger.TargetType.Frontend);
                highFlag = true;
            }
            else if (files.Count >= 10000 && !midFlag)
            {
                Messenger.PostMessage("Over 10000 files! That's quite a collection ...", Messenger.TargetType.Frontend);
                midFlag = true;
            }
            else if (files.Count >= 5000 && !lowFlag)
            {
                Messenger.PostMessage("Over 5000 files! This could take a while...", Messenger.TargetType.Frontend);
                lowFlag = true;
            }

            lock (files)
            {
                foreach (var file in folderFiles)
                {
                    if (file.Contains("._"))
                    {
                        continue;
                    }

                    files.Add(file);
                }
            }

            var subFolders = browser.GetSubFolders();

            var mid   = subFolders.Count / 2;
            var first = subFolders.GetRange(0, mid);

            subFolders.RemoveRange(0, mid);

            await RangedLoad(first).ConfigureAwait(false);
            await RangedLoad(subFolders).ConfigureAwait(false);
        }