Exemplo n.º 1
0
        static async Task InvokeAfterCaptureAction(ScreenRecording recording, HSSettings settingsContext)
        {
            switch (settingsContext.ActionAfterVideoCapture)
            {
            case VideoCaptureHandlingAction.Upload:
                try
                {
                    var payload = new VideoUploadPayload(recording);

                    var result = await UploadDispatcher.InitiateUploadToDefaultUploader(payload, settingsContext, HolzShotsApplication.Instance.Uploaders, null).ConfigureAwait(true);

                    UploadHelper.InvokeUploadFinishedUI(result, settingsContext);
                }
                catch (UploadCanceledException)
                {
                    NotificationManager.ShowOperationCanceled();
                }
                catch (UploadException ex)
                {
                    await NotificationManager.UploadFailed(ex);
                }
                return;

            case VideoCaptureHandlingAction.CopyFile:
            {
                var success = ClipboardEx.SetFiles(recording.FilePath);
                if (settingsContext.ShowCopyConfirmation)
                {
                    if (success)
                    {
                        NotificationManager.ShowFileCopyConfirmation();
                    }
                    else
                    {
                        NotificationManager.CopyingFileFailed();
                    }
                }
            }
            break;

            case VideoCaptureHandlingAction.CopyFilePath:
            {
                var success = ClipboardEx.SetText(recording.FilePath);
                if (settingsContext.ShowCopyConfirmation)
                {
                    if (success)
                    {
                        NotificationManager.ShowFilePathCopyConfirmation();
                    }
                    else
                    {
                        NotificationManager.CopyingFilePathFailed();
                    }
                }
            }
            break;

            case VideoCaptureHandlingAction.ShowInExplorer:
                IO.HolzShotsPaths.OpenSelectedFileInExplorer(recording.FilePath);
                return;

            case VideoCaptureHandlingAction.OpenInDefaultApp:
                Process.Start(recording.FilePath);
                return;

            case VideoCaptureHandlingAction.None: return;

            default: throw new ArgumentException("Unhandled VideoCaptureHandlingAction: " + settingsContext.ActionAfterVideoCapture);
            }
        }