diff options
| author | Bond_009 <bond.009@outlook.com> | 2019-09-25 17:43:20 +0200 |
|---|---|---|
| committer | Bond_009 <bond.009@outlook.com> | 2019-10-08 20:59:53 +0200 |
| commit | e553eba31e9f0e05effc30417ee53c02d63304bd (patch) | |
| tree | 7d96ff17db0b3e520bd5a8b9c14784429910fcdf /Emby.Server.Implementations/Data/SqliteItemRepository.cs | |
| parent | ac9dfa8e93106d907bbf78fe2350adfa47c76cec (diff) | |
Use System.Text.Json api
Diffstat (limited to 'Emby.Server.Implementations/Data/SqliteItemRepository.cs')
| -rw-r--r-- | Emby.Server.Implementations/Data/SqliteItemRepository.cs | 39 |
1 files changed, 16 insertions, 23 deletions
diff --git a/Emby.Server.Implementations/Data/SqliteItemRepository.cs b/Emby.Server.Implementations/Data/SqliteItemRepository.cs index 2f083dda4..538beaf33 100644 --- a/Emby.Server.Implementations/Data/SqliteItemRepository.cs +++ b/Emby.Server.Implementations/Data/SqliteItemRepository.cs @@ -5,8 +5,11 @@ using System.IO; using System.Linq; using System.Runtime.Serialization; using System.Text; +using System.Text.Json; +using System.Text.Json.Serialization; using System.Threading; using Emby.Server.Implementations.Playlists; +using MediaBrowser.Common.Json; using MediaBrowser.Controller; using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.Configuration; @@ -38,14 +41,6 @@ namespace Emby.Server.Implementations.Data { private const string ChaptersTableName = "Chapters2"; - private readonly TypeMapper _typeMapper; - - /// <summary> - /// Gets the json serializer. - /// </summary> - /// <value>The json serializer.</value> - private readonly IJsonSerializer _jsonSerializer; - /// <summary> /// The _app paths /// </summary> @@ -53,33 +48,31 @@ namespace Emby.Server.Implementations.Data private readonly IServerApplicationHost _appHost; private readonly ILocalizationManager _localization; + private readonly TypeMapper _typeMapper; + private readonly JsonSerializerOptions _jsonOptions; + /// <summary> /// Initializes a new instance of the <see cref="SqliteItemRepository"/> class. /// </summary> public SqliteItemRepository( IServerConfigurationManager config, IServerApplicationHost appHost, - IJsonSerializer jsonSerializer, - ILoggerFactory loggerFactory, + ILogger<SqliteItemRepository> logger, ILocalizationManager localization) - : base(loggerFactory.CreateLogger(nameof(SqliteItemRepository))) + : base(logger) { if (config == null) { throw new ArgumentNullException(nameof(config)); } - if (jsonSerializer == null) - { - throw new ArgumentNullException(nameof(jsonSerializer)); - } - - _appHost = appHost; _config = config; - _jsonSerializer = jsonSerializer; - _typeMapper = new TypeMapper(); + _appHost = appHost; _localization = localization; + _typeMapper = new TypeMapper(); + _jsonOptions = JsonDefaults.GetOptions(); + DbFilePath = Path.Combine(_config.ApplicationPaths.DataPath, "library.db"); } @@ -671,7 +664,7 @@ namespace Emby.Server.Implementations.Data if (TypeRequiresDeserialization(item.GetType())) { - saveItemStatement.TryBind("@data", _jsonSerializer.SerializeToBytes(item)); + saveItemStatement.TryBind("@data", JsonSerializer.SerializeToUtf8Bytes(item, _jsonOptions)); } else { @@ -1302,11 +1295,11 @@ namespace Emby.Server.Implementations.Data { try { - item = _jsonSerializer.DeserializeFromString(reader.GetString(1), type) as BaseItem; + item = JsonSerializer.Deserialize(reader[1].ToBlob(), type, _jsonOptions) as BaseItem; } - catch (SerializationException ex) + catch (JsonException ex) { - Logger.LogError(ex, "Error deserializing item"); + Logger.LogError(ex, "Error deserializing item with JSON: {Data}", reader.GetString(1)); } } |
