Exemplo n.º 1
0
        public List <FileEntryWrapper> GetNewItems(T folderId)
        {
            return(FileStorageService.GetNewItems(folderId)
                   .Select(r =>
            {
                FileEntryWrapper wrapper = null;
                if (r is Folder <int> fol1)
                {
                    wrapper = FolderWrapperHelper.Get(fol1);
                }
                else if (r is Folder <string> fol2)
                {
                    wrapper = FolderWrapperHelper.Get(fol2);
                }
                else if (r is File <int> file1)
                {
                    wrapper = FileWrapperHelper.Get(file1);
                }
                else if (r is File <string> file2)
                {
                    wrapper = FileWrapperHelper.Get(file2);
                }

                return wrapper;
            })
                   .ToList());
        }
Exemplo n.º 2
0
        public IEnumerable <FileEntryWrapper> MoveOrCopyBatchCheck(BatchModel batchModel)
        {
            var checkedFiles   = new List <object>();
            var checkedFolders = new List <object>();

            if (batchModel.DestFolderId.ValueKind == System.Text.Json.JsonValueKind.Number)
            {
                (checkedFiles, checkedFolders) = FileStorageService.MoveOrCopyFilesCheck(batchModel.FileIds, batchModel.FolderIds, batchModel.DestFolderId);
            }
            else
            {
                (checkedFiles, checkedFolders) = FileStorageService.MoveOrCopyFilesCheck(batchModel.FileIds, batchModel.FolderIds, batchModel.DestFolderId);
            }

            var entries = FileStorageService.GetItems(checkedFiles.OfType <int>().Select(Convert.ToInt32), checkedFiles.OfType <int>().Select(Convert.ToInt32), FilterType.FilesOnly, false, "", "");

            entries.AddRange(FileStorageService.GetItems(checkedFiles.OfType <string>(), checkedFiles.OfType <string>(), FilterType.FilesOnly, false, "", ""));

            return(entries.Select(r =>
            {
                FileEntryWrapper wrapper = null;
                if (r is Folder <int> fol1)
                {
                    wrapper = FolderWrapperHelper.Get(fol1);
                }
                if (r is Folder <string> fol2)
                {
                    wrapper = FolderWrapperHelper.Get(fol2);
                }

                return wrapper;
            }));
        }
        /// <summary>
        /// Download request from one of images.
        /// </summary>
        /// <param name="entry"></param>
        private void PhotoCard_DownloadRequested(FileEntryWrapper entry)
        {
            if (txtFolder.Text == "")
            {
                MessageBox.Show(AppStrings.Err_DownloadFolder, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            entry.DownloadStatus = DOWNLOAD_STATUS.WAINTING;
            _downloadQueue.Add(entry);
            if (_downloadWorkder == null)
            {
                _downloadWorkder = new BackgroundWorker();
                _downloadWorkder.WorkerSupportsCancellation = true;
                _downloadWorkder.DoWork += _downloadWorkder_DoWork;
            }

            var parameters = new object[] { txtFolder.Text };

            //if (!_downloadWorkder.IsBusy)
            if (!_isDownloading)
            {
                _downloadWorkder.RunWorkerAsync(parameters);
            }
        }
Exemplo n.º 4
0
        internal FileEntryWrapper GetFileEntryWrapper(FileEntry r)
        {
            FileEntryWrapper wrapper = null;

            if (r is Folder <int> fol1)
            {
                wrapper = FolderWrapperHelper.Get(fol1);
            }
            else if (r is Folder <string> fol2)
            {
                wrapper = FolderWrapperHelper.Get(fol2);
            }
            else if (r is File <int> file1)
            {
                wrapper = FileWrapperHelper.Get(file1);
            }
            else if (r is File <string> file2)
            {
                wrapper = FileWrapperHelper.Get(file2);
            }

            return(wrapper);
        }
Exemplo n.º 5
0
        public IEnumerable <FileEntryWrapper> MoveOrCopyBatchCheck(BatchModel batchModel)
        {
            FileStorageService.MoveOrCopyFilesCheck(batchModel.FileIds, batchModel.FolderIds, batchModel.DestFolderId, out var checkedFiles, out var checkedFolders);

            var entries = FileStorageService.GetItems(checkedFiles.OfType <long>().Select(Convert.ToInt32), checkedFiles.OfType <long>().Select(Convert.ToInt32), FilterType.FilesOnly, false, "", "");

            entries.AddRange(FileStorageService.GetItems(checkedFiles.OfType <string>(), checkedFiles.OfType <string>(), FilterType.FilesOnly, false, "", ""));

            return(entries.Select(r =>
            {
                FileEntryWrapper wrapper = null;
                if (r is Folder <int> fol1)
                {
                    wrapper = FolderWrapperHelper.Get(fol1);
                }
                if (r is Folder <string> fol2)
                {
                    wrapper = FolderWrapperHelper.Get(fol2);
                }

                return wrapper;
            }));
        }
 /// <summary>
 /// Download cancel request from one of images
 /// </summary>
 /// <param name="entry"></param>
 private void PhotoCard_CancelRequested(FileEntryWrapper entry)
 {
     entry.DownloadStatus = DOWNLOAD_STATUS.NOT_DOWNLOADED;
     _downloadQueue.Remove(entry);
 }
        /// <summary>
        /// Reload all files
        /// </summary>
        public async Task ReloadAllFilesAsync(bool force = true)
        {
            if (!this.Dispatcher.CheckAccess())
            {
                await this.Dispatcher.BeginInvoke(new Action(async() =>
                {
                    await ReloadAllFilesAsync(force);
                }));

                return;
            }
            if (force || _deviceImages.Count == 0)
            {
                _deviceImages.Clear();

                while (true)
                {
                    var param = new ListFilesParam()
                    {
                        FileType = ThetaFileType.Image, EntryCount = 50, StartPosition = _deviceImages.Count, Detail = false
                    };
                    var res = await _theta.ThetaApi.ListFilesAsync(param);

                    foreach (var anEntry in res.Entries)
                    {
                        var wrapper = new FileEntryWrapper()
                        {
                            Data = anEntry, EntryNo = _deviceImages.Count
                        };
                        _deviceImages.Add(wrapper);
                        _getThumbnailQueue.Enqueue(wrapper);
                    }

                    if (_deviceImages.Count >= res.TotalEntries)
                    {
                        break;
                    }
                }
            }

            var di = new DirectoryInfo(txtFolder.Text);
            // Get list of thumbnails already downloaded
            var existingFiles = di.EnumerateFiles().Where(file => file.Extension.Equals(".jpg", StringComparison.CurrentCultureIgnoreCase) ||
                                                          file.Extension.Equals(".jpeg", StringComparison.CurrentCultureIgnoreCase)).ToList();

            var localFiles = new Dictionary <string, FileInfo>();

            foreach (var file in existingFiles)
            {
                localFiles.Add(file.Name, file);
            }

            foreach (var anEntry in _deviceImages)
            {
                if (localFiles.ContainsKey(anEntry.Data.Name))
                {
                    anEntry.DownloadStatus = DOWNLOAD_STATUS.DOWNLOADED;
                }
            }

            IEnumerable <FileEntryWrapper> filteredEntries = null;

            switch (cmbImageFilter.SelectedValue)
            {
            case PHOTO_FILTER.DOWNLOADED:
                filteredEntries = from anEntry in _deviceImages where anEntry.DownloadStatus == DOWNLOAD_STATUS.DOWNLOADED select anEntry;
                break;

            case PHOTO_FILTER.NOT_DOWNLOADED:
                filteredEntries = from anEntry in _deviceImages where anEntry.DownloadStatus != DOWNLOAD_STATUS.DOWNLOADED select anEntry;
                break;

            case PHOTO_FILTER.ALL:
            default:
                filteredEntries = _deviceImages;
                break;
            }

            var view      = (CollectionView)CollectionViewSource.GetDefaultView(filteredEntries);
            var groupDesc = new PropertyGroupDescription("SimpleDate");

            view.GroupDescriptions.Add(groupDesc);

            groupDesc.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Descending));
            lstFiles.DataContext = filteredEntries;

            GetThumbnails();
        }