diff options
| author | JPVenson <github@jpb.email> | 2024-10-10 20:03:15 +0000 |
|---|---|---|
| committer | JPVenson <github@jpb.email> | 2024-10-10 20:03:15 +0000 |
| commit | f397fc5b98468a370fb51696df608dfbb2f14213 (patch) | |
| tree | 43879ae184d653bc0b746686044df7b25ad51381 | |
| parent | ae641b7f3af5117612b3917d93013d26191a71d8 (diff) | |
Fixed CustomType serialisation
| -rw-r--r-- | Jellyfin.Server.Implementations/Item/BaseItemRepository.cs | 9 |
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(); |
