private static async System.Threading.Tasks.Task <List <Image> > ImportImages2Async(DocumentClient client, IEnumerable <Bag> bags, IImageRepository imageservice) { var images = bags.Where(bag => File.Exists($"{ImageFilesystemRepository.Path}{bag.MainID}.jpg")).Select(thee => { return(new Image(null, $"{thee.MainID}.jpg", null)); }).ToList(); var imageRepository = new CreateRepository <Image>(client, DocumentDBConstants.DatabaseId, DocumentDBConstants.Collections.Images); var insertCounter = 0; var insertedImages = new List <Image>(); foreach (var image in images) { var fileImageService = new ImageFilesystemRepository(); var uri = ""; using (var bitmap = await fileImageService.Get(image.Filename)) { using (var imageStream = new MemoryStream()) { bitmap.Save(imageStream, System.Drawing.Imaging.ImageFormat.Jpeg); imageStream.Seek(0, SeekOrigin.Begin); uri = await imageservice.Upload(imageStream, image.Filename); } } var id = await imageRepository.CreateItemAsync(image); insertedImages.Add(new Image(id, image.Filename, uri)); insertCounter++; if (insertCounter > 0 && insertCounter % 250 == 0) { System.Console.WriteLine($"Inserted image#: {insertCounter}"); } } System.Console.WriteLine($"Completed inserting {insertCounter} images"); return(insertedImages); }
private static async System.Threading.Tasks.Task <string> ImportImageAsync(DocumentClient client, Thee thee, IImageRepository imageservice) { if (File.Exists($"{ImageFilesystemRepository.Path}{thee.MainID}.jpg") == false) { return(null); } var image = new Image(null, $"{thee.MainID}.jpg", null); var fileImageService = new ImageFilesystemRepository(); var uri = ""; using (var bitmap = await fileImageService.Get(image.Filename)) { using (var imageStream = new MemoryStream()) { bitmap.Save(imageStream, System.Drawing.Imaging.ImageFormat.Jpeg); imageStream.Seek(0, SeekOrigin.Begin); uri = await imageservice.Upload(imageStream, image.Filename); } } var imageRepository = new CreateRepository <Image>(client, DocumentDBConstants.DatabaseId, DocumentDBConstants.Collections.Images); return(await imageRepository.CreateItemAsync(image)); }