Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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();
        }