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 OnRenameFileCommand() { var choosenName = NamePromptWindow.PromptUser(new NamePromptWindow.Options { InitialName = SelectedItem.LeafName, Title = Resources.GcsFileBrowserRenameFileTitle }); if (choosenName == null) { return; } try { IsLoading = true; var newName = GcsPathUtils.Combine(CurrentState.CurrentPath, choosenName); Debug.WriteLine($"Renaming {SelectedItem.BlobName} to {newName}"); await ProgressDialogWindow.PromptUser( _dataSource.MoveFileAsync( bucket: Bucket.Name, sourceName: SelectedItem.BlobName, destName: newName), new ProgressDialogWindow.Options { Message = Resources.GcsFileBrowserRenamingProgressMessage, Title = Resources.UiDefaultPromptTitle, IsCancellable = false }); EventsReporterWrapper.ReportEvent(GcsFileBrowserRenameFileEvent.Create(CommandStatus.Success)); } catch (DataSourceException ex) { UserPromptUtils.ErrorPrompt( message: string.Format(Resources.GcsFileBrowserRenameFailedMessage, SelectedItem.LeafName), title: Resources.UiErrorCaption, errorDetails: ex.Message); EventsReporterWrapper.ReportEvent(GcsFileBrowserRenameFileEvent.Create(CommandStatus.Failure)); } finally { IsLoading = false; } UpdateCurrentState(); }
private async void OnNewFolderCommand() { var name = NamePromptWindow.PromptUser(new NamePromptWindow.Options { Title = Resources.GcsFileBrowserNewFolderTitle }); if (name == null) { return; } try { IsLoading = true; var startTimestamp = DateTime.Now; await _dataSource.CreateDirectoryAsync(Bucket.Name, $"{CurrentState.CurrentPath}{name}/"); EventsReporterWrapper.ReportEvent( GcsFileBrowserNewFolderEvent.Create(CommandStatus.Success, DateTime.Now - startTimestamp)); } catch (DataSourceException ex) { UserPromptUtils.ErrorPrompt( message: String.Format(Resources.GcsFileBrowserFailedToCreateRemoteFolder, name), title: Resources.UiErrorCaption, errorDetails: ex.Message); EventsReporterWrapper.ReportEvent(GcsFileBrowserNewFolderEvent.Create(CommandStatus.Failure)); } finally { IsLoading = false; } UpdateCurrentState(); }