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()); }
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); } }
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); }
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(); }