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); } } } }
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; } } } }