private async Task AnalyzeImagesTest(ICollection images) { ObservableCollection <StatusResult> tempUploadResult = new ObservableCollection <StatusResult>(UploadResult); UploadResult.Clear(); AnalyzeCommand.RaiseCanExecuteChanged(); AnalyzeMyImgService analyzeImageService = new AnalyzeMyImgService(); ImageDatabaseService imageDbService = new ImageDatabaseService(); foreach (StatusResult imageStatusResult in tempUploadResult) { foreach (ImageFromResult image in imageStatusResult.Images) { ImageModel tmpImg = imageDbService.GetImageByImageData(image.OriginalImage.ImageData); if (tmpImg == null) { tmpImg = image.OriginalImage; tmpImg.ImageTags = await analyzeImageService.RunAsyncAnalyzeImage(image.Id); tmpImg.IsProcessed = true; imageDbService.SaveImageToDatabase(tmpImg); } SortImageInApropriateCollection(tmpImg); } } }
public void SynchronizeWithServiceDB() { if (!InternetService.IsInternetConnected()) { return; } try { List <PhotoItem> photos = new List <PhotoItem>(); foreach (PhotoItem item in GetImagesFromServiceDB()) { photos.Add(item); } DeletePhotosFromServiceDB(photos); ImageDatabaseService imgDbService = new ImageDatabaseService(); foreach (ImageModel image in ImageHelperService.ParsePhotoItemsToImageModels(photos)) { image.IsProcessed = false; imgDbService.SaveImageToDatabase(image); } } catch (Exception) { throw new Exception("Cannot synch with service DB"); } }
public static string SaveImageToDisk(ImageModel image) { ImageDatabaseService imgDbService = new ImageDatabaseService(); StringBuilder saveDirectory = new StringBuilder(); saveDirectory.Append(Path.GetPathRoot(Environment.SystemDirectory)); saveDirectory.Append(@"SortedImages\"); saveDirectory.Append(@"ImagesFromService\"); if (!Directory.Exists(saveDirectory.ToString())) { Directory.CreateDirectory(saveDirectory.ToString()); } string imagePath = saveDirectory.ToString() + image.Name + ".jpg"; using (System.Drawing.Image imageDrwaing = System.Drawing.Image.FromStream(new MemoryStream(image.ImageData))) { imageDrwaing.Save(imagePath, ImageFormat.Jpeg); // Or Png } image.ImagePath = imagePath; imgDbService.UpdateImagePathByImageData(image.ImageData, image.ImagePath); return(imagePath); }
private void DeleteImageFromDB(ImageModel imageModel) { ImageDatabaseService imageDBService = new ImageDatabaseService(); try { imageDBService.DeleteImageFromDatabase(imageModel); } catch { return; } }
public async Task AnalyzeInnerImages(List <ImageModel> imagesForAnalyse) { UploadService uploadService = new UploadService(); AnalyzeUrlService analyzeUrlService = new AnalyzeUrlService(); if (imagesForAnalyse == null || imagesForAnalyse.Count <= 0) { throw new NoImagesForAnalyzingException(); } List <ImageModel> imagesForSending; imagesForSending = new List <ImageModel>(); for (int i = 0; i < imagesForAnalyse.Count; i++) { imagesForSending.Add(imagesForAnalyse[i]); if (imagesForSending.Count % 5 == 0) { uploadService.RunAsyncUpload(imagesForSending); imagesForSending = new List <ImageModel>(); } } StatusResult uploadResult = await uploadService.RunAsyncUpload(imagesForSending); ImageDatabaseService imageDBService = new ImageDatabaseService(); List <ImageTag> resultImageTags = new List <ImageTag>(); foreach (ImageFromResult uploadedImage in uploadResult.Images) { foreach (ImageModel image in imagesForAnalyse) { if (image.Name.Equals(uploadedImage.ImageName)) { resultImageTags = await RunAsyncAnalyzeImage(uploadedImage.Id); imageDBService.UpdateImageTagsByImageName(uploadedImage.ImageName, resultImageTags); } } } }
private void SyncAsyncImages() { try { ImageDatabaseService imgDbService = new ImageDatabaseService(); ImageService imgService = new ImageService(); imgService.SynchronizeWithServiceDB(); List <ImageModel> serviceImages = imgDbService.GetAllImages().Where(img => !img.IsProcessed).ToList(); foreach (ImageModel img in serviceImages) { img.ImagePath = ImageHelperService.SaveImageToDisk(img); Images.Add(img); } } catch (Exception) { return; } }