/// <summary> /// アップロードステータス変更イベント /// </summary> /// <param name="status"></param> private void YoutubeUploadStatusChanged(YoutubeUploadStatus status) { Dispatcher.Invoke((Action)(() => { // すべてのファイルアップロードを終えたらサウンドを流して完了状態にする if (status.IsAllComplete) { UploadProgress.Maximum = 100; UploadProgress.Value = 100; Utility.PlayCompleteSoundAsync(); return; } var percent = Convert.ToInt32(((status.FileCurrentUploadedByte + status.FileUploadedByte) / (double)status.FileAllByte) * 100); UploadProgress.Maximum = 100; UploadProgress.Value = percent; TaskbarManager.Instance.SetProgressValue(percent, 100); switch (status.Status) { case UploadStatus.Uploading: Label_Status.Content = $"[{status.FileName}]をアップロード中です。({status.FileIndex}/{status.FileCount})"; break; case UploadStatus.Failed: Label_Status.Content = $"[{status.FileName}]のアップロードに失敗しました。({status.FileIndex}/{status.FileCount})"; break; case UploadStatus.Completed: Label_Status.Content = $"[{status.FileName}]をアップロード完了しました。({status.FileIndex}/{status.FileCount})"; break; } })); }
/// <summary> /// オブジェクトクローン /// </summary> /// <returns></returns> public YoutubeUploadStatus Clone() { lock (lockObj) { var obj = new YoutubeUploadStatus(); obj.FileName = this.FileName; obj.FileIndex = this.FileIndex; obj.FileCount = this.FileCount; obj.FileCurrentUploadedByte = this.FileCurrentUploadedByte; obj.FileUploadedByte = this.FileUploadedByte; obj.FileAllByte = this.FileAllByte; obj.Status = this.Status; return(obj); } }