public async void StartUpload() { if (string.IsNullOrEmpty(FileName)) { MessageBox.Show("Please enter a file name"); return; } try { CurrentState = State.Working; ErrorText = ""; _cancelToken = new CancellationTokenSource(); await _clipCreator.ClipAndUpload(OriginalFile.FullName, $"{SafeFileName}.mp4", StartTime, EndTime, new Progress <EncodeProgress>(ep => { EncodeProgress = ep.PercentComplete; EncodeFps = ep.FramesPerSecond; }), new Progress <UploadProgress>(up => { UploadProgress = up.PercentComplete; UploadRate = up.BitsPerSecond; }), _cancelToken.Token); CurrentState = State.Done; if (DeleteOnSuccess) { try { File.Delete(OriginalFile.FullName); } catch { // ignored } } } catch (Exception e) { CurrentState = State.Error; Console.Write(e); ErrorText = $"Error: {e.Message}"; } }
public async void StartUpload() { if (string.IsNullOrEmpty(FileName)) { MessageBox.Show("Please enter a file name"); return; } try { CurrentState = State.Working; ErrorText = ""; _cancelToken = new CancellationTokenSource(); var uploadProgress = new Progress <UploadProgress>(up => { UploadProgress = up.PercentComplete; UploadRate = up.BitsPerSecond; }); var encodeProgress = new Progress <EncodeProgress>(ep => { EncodeProgress = ep.PercentComplete; EncodeFps = ep.FramesPerSecond; }); if (IsMultiClip) { YouTubeId = await _clipCreator.ClipAndUpload(VideoFiles.Select(vf => vf.File).ToList(), $"{SafeFileName}.mp4", SelectedEncoder, ForceWideScreen, SelectedDestination, encodeProgress, uploadProgress, _cancelToken.Token); } else { YouTubeId = await _clipCreator.ClipAndUpload(OriginalFile.FullName, $"{SafeFileName}.mp4", Timelines, SelectedEncoder, ForceWideScreen, SelectedDestination, encodeProgress, uploadProgress, _cancelToken.Token); } CurrentState = State.Done; if (!DeleteOnSuccess) { return; } if (!IsMultiClip) { await _fileDeleter.Delete(OriginalFile); } else { foreach (var video in VideoFiles) { await _fileDeleter.Delete(video.File); } } } catch (Exception e) { CurrentState = State.Error; Console.Write(e); ErrorText = $"Error: {e.Message}"; } finally { _cancelToken = null; } }