internal static string SerializeJobs(EncodeJobPersistGroup jobPersistGroup) { var xmlBuilder = new StringBuilder(); using (XmlWriter writer = XmlWriter.Create(xmlBuilder)) { xmlSerializer.Serialize(writer, jobPersistGroup); } return(xmlBuilder.ToString()); }
public EncodeJobPersistGroup GetQueuePersistGroup() { var jobPersistGroup = new EncodeJobPersistGroup(); foreach (EncodeJobViewModel jobVM in this.EncodeQueue) { jobPersistGroup.EncodeJobs.Add( new EncodeJobWithMetadata { Job = jobVM.Job, SourceParentFolder = jobVM.SourceParentFolder, ManualOutputPath = jobVM.ManualOutputPath, NameFormatOverride = jobVM.NameFormatOverride, PresetName = jobVM.PresetName }); } return jobPersistGroup; }
internal static string SerializeJobs(EncodeJobPersistGroup jobPersistGroup) { var xmlBuilder = new StringBuilder(); using (XmlWriter writer = XmlWriter.Create(xmlBuilder)) { xmlSerializer.Serialize(writer, jobPersistGroup); } return xmlBuilder.ToString(); }
static Database() { mainThreadId = Thread.CurrentThread.ManagedThreadId; int databaseVersion = DatabaseConfig.Version; if (databaseVersion > Utilities.CurrentDatabaseVersion) { string messageLine1 = string.Format( CultureInfo.CurrentCulture, MainRes.RenameDatabaseFileLine1, databaseVersion, Utilities.CurrentVersion, Utilities.CurrentDatabaseVersion); string messageLine2 = MainRes.RenameDatabaseFileLine2; string message = string.Format( CultureInfo.CurrentCulture, "{0}{1}{1}{2}", messageLine1, Environment.NewLine, messageLine2); var messageService = Ioc.Container.GetInstance <IMessageBoxService>(); messageService.Show(message, MainRes.IncompatibleDatabaseFileTitle, MessageBoxButton.YesNo); if (messageService.Show( message, MainRes.IncompatibleDatabaseFileTitle, MessageBoxButton.YesNo) == MessageBoxResult.Yes) { Connection.Close(); try { string newFileName = ConfigDatabaseFileWithoutExtension + "-v" + databaseVersion + ConfigDatabaseFileExtension; string newFilePath = Utilities.CreateUniqueFileName(newFileName, Utilities.AppFolder, new HashSet <string>()); File.Move(DatabaseFile, newFilePath); connection = null; databaseVersion = DatabaseConfig.Version; } catch (IOException) { HandleCriticalFileError(); } catch (UnauthorizedAccessException) { HandleCriticalFileError(); } } else { Environment.Exit(0); } } if (databaseVersion == Utilities.CurrentDatabaseVersion) { return; } using (SQLiteTransaction transaction = Connection.BeginTransaction()) { // Update encoding profiles if we need to. if (databaseVersion < Utilities.LastUpdatedEncodingProfileDatabaseVersion) { // Upgrade encoding profiles on presets (encoder/mixdown changes) var presets = Presets.GetPresetListFromDb(); foreach (Preset preset in presets) { Presets.UpgradeEncodingProfile(preset.EncodingProfile, databaseVersion); } var presetXmlList = presets.Select(Presets.SerializePreset).ToList(); Presets.SavePresets(presetXmlList, Connection); // Upgrade encoding profiles on old queue items. string jobsXml = Config.EncodeJobs2; if (!string.IsNullOrEmpty(jobsXml)) { EncodeJobPersistGroup persistGroup = EncodeJobsPersist.LoadJobsXmlString(jobsXml); foreach (EncodeJobWithMetadata job in persistGroup.EncodeJobs) { Presets.UpgradeEncodingProfile(job.Job.EncodingProfile, databaseVersion); } Config.EncodeJobs2 = EncodeJobsPersist.SerializeJobs(persistGroup); } } // Update DB schema if (databaseVersion < 18) { Database.ExecuteNonQuery( "CREATE TABLE workerLogs (" + "workerGuid TEXT, " + "message TEXT, " + "level INTEGER, " + "time TEXT)", connection); } SetDatabaseVersionToLatest(); transaction.Commit(); } }