Beispiel #1
0
        public static async Task PickAndImportImagesToFolder(FolderItem folder)
        {
            var picker = new FileOpenPicker();

            picker.ViewMode = PickerViewMode.Thumbnail;
            picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
            picker.FileTypeFilter.Add(".jpg");
            picker.FileTypeFilter.Add(".jpeg");
            picker.FileTypeFilter.Add(".png");
            picker.FileTypeFilter.Add(".gif");

            var files = await picker.PickMultipleFilesAsync();

            if (files != null && files.Count > 0)
            {
                var recentStateMessage = StateMessaging.SendLoadingMessage("Scanning imported images...");
                var imageItems         = await folder.AddFilesToFolder(files);

                CurrentlyScannedFolder = folder;
                try
                {
                    await BackendConctroller.TagImages(imageItems.Select(i => i.DatabaseId).ToList());
                }
                catch (Exception)
                {
                }

                var pickTaskIds   = new List <int>();
                int compareTaskId = BackendConctroller.CompareImages(
                    imageItems,
                    FindSimilarFinishedHandler);
                pickTaskIds.Add(compareTaskId);

                // TODO: uncomment when backend provides quality check
                //int qualityTaskId = BackendConctroller.CheckImagesQuality(
                //    imageItems,
                //    CheckQualityFinishedHandler);
                //pickTaskIds.Add(qualityTaskId);
                FolderPickImages.Add(FolderPickCntr, imageItems);
                FolderPickTasks.Add(FolderPickCntr, pickTaskIds);
                FolderPickFolder.Add(FolderPickCntr, folder);
                FolderPickStateMessage.Add(FolderPickCntr, recentStateMessage);
            }
            FolderPickCntr++;
        }