private void UploadFiles(IEnumerable <string> files) { try { CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); var uploadOperationsQueue = _fileOperationsEngine.StartUploadOperations( files, bucket: Bucket.Name, bucketPath: _currentState.CurrentPath, cancellationToken: cancellationTokenSource.Token); GcsFileProgressDialogWindow.PromptUser( caption: Resources.GcsFileBrowserUploadingProgressCaption, message: Resources.GcsFileBrowserUploadingProgressMessage, progressMessage: Resources.GcsFileBrowserUploadingOverallProgressMessage, operations: uploadOperationsQueue.Operations, cancellationTokenSource: cancellationTokenSource); EventsReporterWrapper.ReportEvent(GcsFileBrowserStartUploadEvent.Create(CommandStatus.Success)); } catch (IOException ex) { UserPromptUtils.ErrorPrompt( message: Resources.GcsFileProgressDialogFailedToEnumerateFiles, title: Resources.UiErrorCaption, errorDetails: ex.Message); EventsReporterWrapper.ReportEvent(GcsFileBrowserStartUploadEvent.Create(CommandStatus.Failure)); } UpdateCurrentState(); }
private async void OnRenameFolderCommand() { var newLeafName = NamePromptWindow.PromptUser(new NamePromptWindow.Options { InitialName = SelectedItem.LeafName, Title = Resources.GcsFileBrowserRenameFolderTitle }); if (newLeafName == null) { return; } try { IsLoading = true; CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); var renameDirectoryOperations = await _fileOperationsEngine.StartDirectoryRenameOperationsAsync( bucket : Bucket.Name, parentName : CurrentState.CurrentPath, oldLeafName : SelectedItem.LeafName, newLeafName : newLeafName, cancellationToken : cancellationTokenSource.Token); GcsFileProgressDialogWindow.PromptUser( caption: Resources.GcsFileBrowserRenamingFilesCaption, message: Resources.GcsFileBrowserRenamingFilesMessage, progressMessage: Resources.GcsFileBrowserRenamingFilesProgressMessage, operations: renameDirectoryOperations.Operations, cancellationTokenSource: cancellationTokenSource); EventsReporterWrapper.ReportEvent(GcsFileBrowserStartRenameDirectoryEvent.Create(CommandStatus.Success)); } catch (DataSourceException ex) { UserPromptUtils.ErrorPrompt( message: string.Format(Resources.GcsFileBrowserRenameFailedMessage, SelectedItem.LeafName), title: Resources.UiErrorCaption, errorDetails: ex.Message); EventsReporterWrapper.ReportEvent(GcsFileBrowserStartRenameDirectoryEvent.Create(CommandStatus.Failure)); } finally { IsLoading = false; } UpdateCurrentState(); }
private async void OnDownloadCommand() { FBD dialog = new FBD(); dialog.Description = Resources.GcsFileBrowserFolderSelectionMessage; dialog.ShowNewFolderButton = true; var result = dialog.ShowDialog(); if (result == System.Windows.Forms.DialogResult.Cancel) { return; } var downloadRoot = dialog.SelectedPath; try { IsLoading = true; CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); var downloadOperationsQueue = await _fileOperationsEngine.StartDownloadOperationsAsync( SelectedItems.Select(x => new GcsUtils.GcsItemRef(x.Bucket, x.BlobName)), downloadRoot, cancellationTokenSource.Token); GcsFileProgressDialogWindow.PromptUser( caption: Resources.GcsFileBrowserDownloadingProgressCaption, message: Resources.GcsFileBrowserDownloadingProgressMessage, progressMessage: Resources.GcsFileBrowserDownloadingOverallProgressMessage, operations: downloadOperationsQueue.Operations, cancellationTokenSource: cancellationTokenSource); EventsReporterWrapper.ReportEvent(GcsFileBrowserStartDownloadEvent.Create(CommandStatus.Success)); } catch (IOException ex) { UserPromptUtils.ErrorPrompt( message: Resources.GcsFileBrowserFailedToCreateDirMessage, title: Resources.UiErrorCaption, errorDetails: ex.Message); EventsReporterWrapper.ReportEvent(GcsFileBrowserStartDownloadEvent.Create(CommandStatus.Failure)); return; } finally { IsLoading = false; } }
private async void OnDeleteCommand() { if (!UserPromptUtils.ActionPrompt( prompt: Resources.GcsFileBrowserDeletePromptMessage, title: Resources.UiDefaultPromptTitle, actionCaption: Resources.UiDeleteButtonCaption, cancelCaption: Resources.UiCancelButtonCaption)) { return; } try { IsLoading = true; var cancellationTokenSource = new CancellationTokenSource(); var deleteOperationsQueue = await _fileOperationsEngine.StartDeleteOperationsAsync( SelectedItems.Select(x => new GcsItemRef(x.Bucket, x.BlobName)), cancellationTokenSource.Token); GcsFileProgressDialogWindow.PromptUser( caption: Resources.GcsFileBrowserDeletingProgressCaption, message: Resources.GcsFileBrowserDeletingProgressMessage, progressMessage: Resources.GcsFileBrowserDeletingOverallProgressMessage, operations: deleteOperationsQueue.Operations, cancellationTokenSource: cancellationTokenSource); EventsReporterWrapper.ReportEvent(GcsFileBrowserStartDeleteEvent.Create(CommandStatus.Success)); } catch (DataSourceException ex) { UserPromptUtils.ErrorPrompt( message: Resources.GcsFileBrowserDeleteListErrorMessage, title: Resources.UiErrorCaption, errorDetails: ex.Message); EventsReporterWrapper.ReportEvent(GcsFileBrowserStartDeleteEvent.Create(CommandStatus.Failure)); } finally { IsLoading = false; } UpdateCurrentState(); }