public void DownloadRebrickableCsvFiles(RbDatabaseFile databaseFiles, string destinationFolder)
        {
            if (DatabaseFileLinks.Count == 0)
            {
                FetchRebrickableDownloadLinks();
            }


            Directory.CreateDirectory(destinationFolder);

            using (var wc = new WebClient())
            {
                foreach (var dbFileInfo in DatabaseFileLinks.Values)
                {
                    if (databaseFiles.HasFlag(dbFileInfo.FileType))
                    {
                        string destinationPath = Path.Combine(destinationFolder, dbFileInfo.FileName);
                        NotifyProgressStatus($"Downloading file {dbFileInfo.FileName}...");
                        var downloadTask = wc.DownloadFileTaskAsync(dbFileInfo.DownloadUrl, destinationPath);
                        downloadTask.Wait(CancellationToken);
                        if (CancellationToken.IsCancellationRequested)
                        {
                            break;
                        }
                        //downloadTasks.Add(downloadTask);
                    }
                }
            }
        }
示例#2
0
        public void DownloadRebrickableCsvFiles(RbDatabaseFile databaseFiles, string destinationFolder)
        {
            if (DatabaseFileLinks.Count == 0)
            {
                FetchRebrickableDownloadLinks();
            }

            var downloadTasks = new List <Task>();

            using (var wc = new WebClient())
            {
                foreach (var dbFileInfo in DatabaseFileLinks.Values)
                {
                    if (databaseFiles.HasFlag(dbFileInfo.FileType))
                    {
                        string destinationPath = Path.Combine(destinationFolder, dbFileInfo.FileName);
                        var    downloadTask    = wc.DownloadFileTaskAsync(dbFileInfo.DownloadUrl, destinationPath);
                        downloadTasks.Add(downloadTask);
                    }
                }

                foreach (var downloadTask in downloadTasks)
                {
                    downloadTask.Wait(CancellationToken);
                    if (CancellationToken.IsCancellationRequested)
                    {
                        break;
                    }
                }
            }
        }