WinGui: Switch over to System.Text.Json for the Queue Services.

This commit is contained in:
sr55 2021-01-15 22:21:17 +00:00
parent 1e75e508a7
commit d57a00a652
No known key found for this signature in database
GPG Key ID: DC68C9CE6FEC775F
10 changed files with 18 additions and 51 deletions

View File

@ -14,18 +14,18 @@ namespace HandBrakeWPF.Helpers
using System.Diagnostics; using System.Diagnostics;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text.Json;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Windows; using System.Windows;
using HandBrake.Interop.Json;
using HandBrake.Interop.Utilities; using HandBrake.Interop.Utilities;
using HandBrakeWPF.Services.Interfaces; using HandBrakeWPF.Services.Interfaces;
using HandBrakeWPF.Services.Queue.Model; using HandBrakeWPF.Services.Queue.Model;
using HandBrakeWPF.Utilities; using HandBrakeWPF.Utilities;
using Newtonsoft.Json; using IQueueService = Services.Queue.Interfaces.IQueueService;
using IQueueService = HandBrakeWPF.Services.Queue.Interfaces.IQueueService;
public class QueueRecoveryHelper public class QueueRecoveryHelper
{ {
@ -70,7 +70,7 @@ namespace HandBrakeWPF.Helpers
{ {
using (StreamReader stream = new StreamReader(file)) using (StreamReader stream = new StreamReader(file))
{ {
List<QueueTask> list = list = JsonConvert.DeserializeObject<List<QueueTask>>(stream.ReadToEnd()); List<QueueTask> list = list = JsonSerializer.Deserialize<List<QueueTask>>(stream.ReadToEnd(), JsonSettings.Options);
if (list != null && list.Count == 0) if (list != null && list.Count == 0)
{ {
removeFiles.Add(file); removeFiles.Add(file);

View File

@ -13,13 +13,13 @@ namespace HandBrakeWPF.Model.Audio
using System.ComponentModel; using System.ComponentModel;
using System.Globalization; using System.Globalization;
using System.Linq; using System.Linq;
using System.Text.Json.Serialization;
using Caliburn.Micro; using Caliburn.Micro;
using HandBrake.Interop.Interop; using HandBrake.Interop.Interop;
using HandBrake.Interop.Interop.Model; using HandBrake.Interop.Interop.Model;
using HandBrake.Interop.Interop.Model.Encoding; using HandBrake.Interop.Interop.Model.Encoding;
using Newtonsoft.Json;
using Services.Encode.Model.Models; using Services.Encode.Model.Models;
using Utilities; using Utilities;

View File

@ -25,8 +25,6 @@ namespace HandBrakeWPF.Services.Encode.Factories
using HandBrakeWPF.Services.Interfaces; using HandBrakeWPF.Services.Interfaces;
using HandBrakeWPF.Utilities; using HandBrakeWPF.Utilities;
using Newtonsoft.Json.Linq;
using AudioEncoder = Model.Models.AudioEncoder; using AudioEncoder = Model.Models.AudioEncoder;
using AudioEncoderRateType = Model.Models.AudioEncoderRateType; using AudioEncoderRateType = Model.Models.AudioEncoderRateType;
using AudioTrack = Model.Models.AudioTrack; using AudioTrack = Model.Models.AudioTrack;
@ -210,7 +208,7 @@ namespace HandBrakeWPF.Services.Encode.Factories
return subtitle; return subtitle;
} }
private Video CreateVideo(EncodeTask job, HBConfiguration configuration) private Video CreateVideo(EncodeTask job, HBConfiguration configuration)
{ {
Video video = new Video(); Video video = new Video();

View File

@ -14,6 +14,7 @@ namespace HandBrakeWPF.Services.Encode.Model.Models
using System.ComponentModel; using System.ComponentModel;
using System.Globalization; using System.Globalization;
using System.Linq; using System.Linq;
using System.Text.Json.Serialization;
using Caliburn.Micro; using Caliburn.Micro;
@ -25,9 +26,6 @@ namespace HandBrakeWPF.Services.Encode.Model.Models
using HandBrakeWPF.Services.Scan.Model; using HandBrakeWPF.Services.Scan.Model;
using HandBrakeWPF.Utilities; using HandBrakeWPF.Utilities;
using Newtonsoft.Json;
[JsonObject(MemberSerialization.OptOut)]
public class AudioTrack : PropertyChangedBase public class AudioTrack : PropertyChangedBase
{ {
private int bitrate; private int bitrate;

View File

@ -13,9 +13,6 @@ namespace HandBrakeWPF.Services.Encode.Model.Models
using Caliburn.Micro; using Caliburn.Micro;
using Newtonsoft.Json;
[JsonObject(MemberSerialization.OptOut)]
public class ChapterMarker : PropertyChangedBase public class ChapterMarker : PropertyChangedBase
{ {
/// <summary> /// <summary>

View File

@ -9,17 +9,12 @@
namespace HandBrakeWPF.Services.Encode.Model.Models namespace HandBrakeWPF.Services.Encode.Model.Models
{ {
using System;
using Caliburn.Micro; using Caliburn.Micro;
using HandBrake.Interop.Utilities; using HandBrake.Interop.Utilities;
using HandBrakeWPF.Services.Scan.Model; using HandBrakeWPF.Services.Scan.Model;
using Newtonsoft.Json;
[JsonObject(MemberSerialization.OptOut)]
public class SubtitleTrack : PropertyChangedBase public class SubtitleTrack : PropertyChangedBase
{ {
#region Constants and Fields #region Constants and Fields

View File

@ -10,7 +10,6 @@
namespace HandBrakeWPF.Services.Queue.Model namespace HandBrakeWPF.Services.Queue.Model
{ {
using System; using System;
using System.Xaml;
using Caliburn.Micro; using Caliburn.Micro;

View File

@ -10,15 +10,11 @@
namespace HandBrakeWPF.Services.Queue.Model namespace HandBrakeWPF.Services.Queue.Model
{ {
using System; using System;
using System.Runtime.CompilerServices;
using Caliburn.Micro; using Caliburn.Micro;
using HandBrakeWPF.Properties; using HandBrakeWPF.Properties;
using Newtonsoft.Json;
[JsonObject(MemberSerialization.OptOut)]
public class QueueStats : PropertyChangedBase public class QueueStats : PropertyChangedBase
{ {
private DateTime startTime; private DateTime startTime;

View File

@ -10,7 +10,7 @@
namespace HandBrakeWPF.Services.Queue.Model namespace HandBrakeWPF.Services.Queue.Model
{ {
using System; using System;
using System.Runtime.CompilerServices; using System.Text.Json.Serialization;
using Caliburn.Micro; using Caliburn.Micro;
@ -19,8 +19,6 @@ namespace HandBrakeWPF.Services.Queue.Model
using HandBrakeWPF.Services.Presets.Model; using HandBrakeWPF.Services.Presets.Model;
using HandBrakeWPF.Utilities; using HandBrakeWPF.Utilities;
using Newtonsoft.Json;
using EncodeTask = HandBrakeWPF.Services.Encode.Model.EncodeTask; using EncodeTask = HandBrakeWPF.Services.Encode.Model.EncodeTask;
public class QueueTask : PropertyChangedBase public class QueueTask : PropertyChangedBase
@ -61,19 +59,16 @@ namespace HandBrakeWPF.Services.Queue.Model
this.JobProgress = new QueueProgressStatus(); this.JobProgress = new QueueProgressStatus();
} }
[JsonProperty]
public string TaskId { get; set; } public string TaskId { get; set; }
[JsonIgnore] [JsonIgnore]
public string Id { get; } public string Id { get; }
[JsonProperty]
public string ScannedSourcePath { get; set; } public string ScannedSourcePath { get; set; }
[JsonIgnore] [JsonIgnore]
public Guid? TaskToken { get; set; } public Guid? TaskToken { get; set; }
[JsonProperty]
public QueueItemStatus Status public QueueItemStatus Status
{ {
get get
@ -90,13 +85,10 @@ namespace HandBrakeWPF.Services.Queue.Model
} }
} }
[JsonProperty]
public EncodeTask Task { get; set; } public EncodeTask Task { get; set; }
[JsonProperty]
public HBConfiguration Configuration { get; set; } public HBConfiguration Configuration { get; set; }
[JsonProperty]
public QueueStats Statistics { get; set; } public QueueStats Statistics { get; set; }
[JsonIgnore] [JsonIgnore]

View File

@ -12,15 +12,17 @@ namespace HandBrakeWPF.Services.Queue
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Diagnostics;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text.Json;
using System.Timers; using System.Timers;
using System.Windows; using System.Windows;
using HandBrake.Interop.Interop.Json.Queue; using HandBrake.Interop.Interop.Json.Queue;
using HandBrake.Interop.Json;
using HandBrake.Interop.Model; using HandBrake.Interop.Model;
using HandBrake.Interop.Utilities; using HandBrake.Interop.Utilities;
using HandBrake.Worker.Routing.Commands;
using HandBrakeWPF.Factories; using HandBrakeWPF.Factories;
using HandBrakeWPF.Helpers; using HandBrakeWPF.Helpers;
@ -35,11 +37,7 @@ namespace HandBrakeWPF.Services.Queue
using HandBrakeWPF.Services.Queue.JobEventArgs; using HandBrakeWPF.Services.Queue.JobEventArgs;
using HandBrakeWPF.Services.Queue.Model; using HandBrakeWPF.Services.Queue.Model;
using HandBrakeWPF.Utilities; using HandBrakeWPF.Utilities;
using Newtonsoft.Json;
using Ookii.Dialogs.Wpf;
using EncodeCompletedEventArgs = Encode.EventArgs.EncodeCompletedEventArgs; using EncodeCompletedEventArgs = Encode.EventArgs.EncodeCompletedEventArgs;
using Execute = Caliburn.Micro.Execute; using Execute = Caliburn.Micro.Execute;
using GeneralApplicationException = Exceptions.GeneralApplicationException; using GeneralApplicationException = Exceptions.GeneralApplicationException;
@ -172,7 +170,8 @@ namespace HandBrakeWPF.Services.Queue
using (StreamWriter writer = new StreamWriter(tempPath)) using (StreamWriter writer = new StreamWriter(tempPath))
{ {
List<QueueTask> tasks = this.queue.Where(item => item.Status != QueueItemStatus.Completed).ToList(); List<QueueTask> tasks = this.queue.Where(item => item.Status != QueueItemStatus.Completed).ToList();
string queueJson = JsonConvert.SerializeObject(tasks, Formatting.Indented);
string queueJson = JsonSerializer.Serialize(tasks, JsonSettings.Options);
writer.Write(queueJson); writer.Write(queueJson);
} }
@ -203,9 +202,7 @@ namespace HandBrakeWPF.Services.Queue
{ {
List<QueueTask> jobs = this.queue.Where(item => item.Status != QueueItemStatus.Completed).ToList(); List<QueueTask> jobs = this.queue.Where(item => item.Status != QueueItemStatus.Completed).ToList();
JsonSerializerSettings settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }; string json = JsonSerializer.Serialize(jobs, JsonSettings.Options);
string json = JsonConvert.SerializeObject(jobs, Formatting.Indented, settings);
using (var strm = new StreamWriter(exportPath, false)) using (var strm = new StreamWriter(exportPath, false))
{ {
@ -225,7 +222,7 @@ namespace HandBrakeWPF.Services.Queue
return; return;
} }
List<QueueTask> reloadedQueue = JsonConvert.DeserializeObject<List<QueueTask>>(fileContent); List<QueueTask> reloadedQueue = JsonSerializer.Deserialize<List<QueueTask>>(fileContent);
if (reloadedQueue == null) if (reloadedQueue == null)
{ {
@ -449,7 +446,7 @@ namespace HandBrakeWPF.Services.Queue
try try
{ {
list = JsonConvert.DeserializeObject<List<QueueTask>>(queueJson); list = JsonSerializer.Deserialize<List<QueueTask>>(queueJson);
} }
catch (Exception exc) catch (Exception exc)
{ {
@ -722,11 +719,6 @@ namespace HandBrakeWPF.Services.Queue
private string GetQueueJson(List<EncodeTask> tasks, HBConfiguration configuration) private string GetQueueJson(List<EncodeTask> tasks, HBConfiguration configuration)
{ {
JsonSerializerSettings settings = new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore,
};
List<Task> queueJobs = new List<Task>(); List<Task> queueJobs = new List<Task>();
foreach (var item in tasks) foreach (var item in tasks)
{ {
@ -734,7 +726,7 @@ namespace HandBrakeWPF.Services.Queue
queueJobs.Add(task); queueJobs.Add(task);
} }
return JsonConvert.SerializeObject(queueJobs, Formatting.Indented, settings); return JsonSerializer.Serialize(queueJobs, JsonSettings.Options);
} }
private bool CheckDiskSpace(QueueTask job) private bool CheckDiskSpace(QueueTask job)