static void DownloadArtwork(IEnumerable<Series> series) { var start = DateTime.Now; Total = series.Sum(e => e.ArtWorks.Count); Console.WriteLine("{0}: Downloading {1} Artwork files.", DateTime.Now, Total); var downloader = new FileDownloader(); downloader.DownloadProgressNotification += DownloaderOnDownloadProgressNotification; foreach (var s in series) { foreach (var artwork in s.ArtWorks) { var localPath = Path.Combine(s.SeriesId.ToString(), Path.GetFileName(artwork.Url.ToString())); downloader.AddDownload(artwork.Url, new FileInfo(Path.Combine(Path.GetDirectoryName(localPath), artwork.Id.ToString() + Path.GetExtension(localPath))), artwork.Id); } } while (!downloader.IsIdle) { Thread.Sleep(1000); } Console.WriteLine("{0}: Finished. Took: {1} seconds.", DateTime.Now, Math.Round((DateTime.Now - start).TotalSeconds, 0)); }