Business.MediaEncoderBusiness.FinalizeReplace C# (CSharp) Метод

FinalizeReplace() публичный Метод

public FinalizeReplace ( EncodingCompletedEventArgs jobInfo ) : void
jobInfo EncodingCompletedEventArgs
Результат void
        public void FinalizeReplace(EncodingCompletedEventArgs jobInfo) {
            EditVideoBusiness EditBusiness = new EditVideoBusiness();
            Media EditVideo = EditBusiness.GetVideoByFileName(jobInfo.OldFileName);
            System.Threading.Thread.Sleep(200); // Give MPC time to release the file.
            string OriginalPath = Path.Combine(Path.GetDirectoryName(Settings.NaturalGroundingFolder + jobInfo.OldFileName), "Original", Path.GetFileName(jobInfo.OldFileName));
            string NewPath = Path.Combine(Path.GetDirectoryName(Settings.NaturalGroundingFolder + jobInfo.OldFileName), Path.GetFileNameWithoutExtension(jobInfo.OldFileName) + Path.GetExtension(jobInfo.Settings.FinalFile));
            Directory.CreateDirectory(Path.GetDirectoryName(OriginalPath));
            SafeMove(Settings.NaturalGroundingFolder + jobInfo.OldFileName, OriginalPath);
            SafeMove(jobInfo.Settings.FinalFile, NewPath);
            jobInfo.Settings.FileName = OriginalPath.Substring(Settings.NaturalGroundingFolder.Length);

            if (EditVideo != null) {
                EditVideo.FileName = NewPath.Substring(Settings.NaturalGroundingFolder.Length);
                EditVideo.Height = null;
                EditBusiness.Save();
            }
        }

Usage Example

        private async void OkButton_Click(object sender, RoutedEventArgs e) {
            try {
                OkButton.IsEnabled = false;
                player.Close();
                MediaEncoderBusiness business = new MediaEncoderBusiness();
                if (ReplaceOption.IsChecked.Value) {
                    await Task.Run(() => business.FinalizeReplace(jobInfo));
                } else if (KeepOption.IsChecked.Value) {
                    await Task.Run(() => business.FinalizeKeep(jobInfo));
                }
                if (ReencodeCheckbox.IsChecked.Value) {
                    MediaEncoderWindow ActiveWindow = SessionCore.Instance.Windows.Current as MediaEncoderWindow;
                    
                    // If Media Encoder is open, close preview windows and replace preview files.
                    // Otherwise, open Media Encoder and pre-load preview files.
                    if (ActiveWindow != null)
                        ActiveWindow.ClosePreview();
                    await business.MovePreviewFilesAsync(jobInfo.Settings);

                    if (ActiveWindow != null) {
                        // Media Encoder is already open.
                        ActiveWindow.SetEncodeSettings(jobInfo.Settings);
                    } else {
                        // Media Encoder is not open, open it.
                        SessionCore.Instance.Windows.CloseToMain();
                        SessionCore.Instance.Menu.CommandBinding_MediaEncoder(null, null);
                    }
                }
                business.DeleteJobFiles(jobInfo.Settings);
                this.Close();
            }
            catch (Exception ex) {
                OkButton.IsEnabled = true;
                MessageBox.Show(this, ex.Message, "File Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }