Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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");
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        private void DeleteImageFromDB(ImageModel imageModel)
        {
            ImageDatabaseService imageDBService = new ImageDatabaseService();

            try
            {
                imageDBService.DeleteImageFromDatabase(imageModel);
            }
            catch
            {
                return;
            }
        }
Ejemplo n.º 5
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 6
0
        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;
            }
        }