public void ResizeSetOfLegoImages(int totalImagesToConvert = 100) { //string LegoImagesWriteLocation = "c:\\LegoCatalog\\ImagesJpeg"; string LegoImagesWriteLocation = "f:\\LegoCatalog\\ImagesJpeg"; int i = 1; foreach (var part in db.Parts.Where(p => string.IsNullOrWhiteSpace(p.IconLinkJpeg)).Take(totalImagesToConvert).OrderBy(p => p.ItemId).ToList()) //foreach (var part in db.Parts.Where(p => p.IconLinkJpeg == "error").Take(totalImagesToConvert).OrderBy(p => p.ItemId).ToList()) { byte[] imageBytes; string imageFilename = $"{part.ItemId}.jpg"; try { using (var webClient = new WebClient()) { var imageLink = part.ImageLink.Replace("https://", ""); imageBytes = webClient.DownloadData(part.ImageLink); } if (imageBytes != null) { MagickImage image = new MagickImage(imageBytes); image.Format = MagickFormat.Jpeg; image.Quality = 75; image.Resize(80, 80); image.Write(Path.Combine(LegoImagesWriteLocation, imageFilename)); part.IconLinkJpeg = imageFilename; db.SaveChanges(); Console.WriteLine($"Converted image {i++} to {imageFilename}"); } } catch (Exception ex) { part.IconLinkJpeg = "error"; db.SaveChanges(); Console.WriteLine($"Error resizing image {imageFilename} from {part.ImageLink}: {ex.Message}"); Thread.Sleep(1000); // pause incase the issue is network related } } }