aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJPVenson <github@jpb.email>2024-10-10 20:03:15 +0000
committerJPVenson <github@jpb.email>2024-10-10 20:03:15 +0000
commitf397fc5b98468a370fb51696df608dfbb2f14213 (patch)
tree43879ae184d653bc0b746686044df7b25ad51381
parentae641b7f3af5117612b3917d93013d26191a71d8 (diff)
Fixed CustomType serialisation
-rw-r--r--Jellyfin.Server.Implementations/Item/BaseItemRepository.cs9
1 files changed, 8 insertions, 1 deletions
diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
index 5708391a5..208bb4198 100644
--- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
+++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
@@ -28,6 +28,7 @@ using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.LiveTv;
using MediaBrowser.Model.Querying;
+using Microsoft.AspNetCore.Http.Json;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using BaseItemDto = MediaBrowser.Controller.Entities.BaseItem;
@@ -1485,12 +1486,18 @@ public sealed class BaseItemRepository(
/// <returns>The dto to map.</returns>
public BaseItemEntity Map(BaseItemDto dto)
{
+ var dtoType = dto.GetType();
var entity = new BaseItemEntity()
{
- Type = dto.GetType().ToString(),
+ Type = dtoType.ToString(),
Id = dto.Id
};
+ if (TypeRequiresDeserialization(dtoType))
+ {
+ entity.Data = JsonSerializer.Serialize(dto, dtoType, JsonDefaults.Options);
+ }
+
entity.ParentId = !dto.ParentId.IsEmpty() ? dto.ParentId : null;
entity.Path = GetPathToSave(dto.Path);
entity.EndDate = dto.EndDate.GetValueOrDefault();