aboutsummaryrefslogtreecommitdiff
path: root/Jellyfin.Server.Implementations/Item
diff options
context:
space:
mode:
authorJPVenson <github@jpb.email>2024-10-09 23:19:24 +0000
committerJPVenson <github@jpb.email>2024-10-09 23:19:24 +0000
commit2955f2f56275fca01cd3f586b3475dcdfbea78ed (patch)
treec9202c3ad903e704058c9d9b745ef90d1c150ca9 /Jellyfin.Server.Implementations/Item
parenteb601e944cd392a8007b540ab5627977a37368c6 (diff)
Fixed AncestorIds and applied review comments
Diffstat (limited to 'Jellyfin.Server.Implementations/Item')
-rw-r--r--Jellyfin.Server.Implementations/Item/BaseItemRepository.cs20
-rw-r--r--Jellyfin.Server.Implementations/Item/MediaAttachmentRepository.cs2
-rw-r--r--Jellyfin.Server.Implementations/Item/MediaStreamRepository.cs7
-rw-r--r--Jellyfin.Server.Implementations/Item/PeopleRepository.cs2
4 files changed, 15 insertions, 16 deletions
diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
index 6ddab9e3db..6603b15e29 100644
--- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
+++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.cs
@@ -83,7 +83,7 @@ public sealed class BaseItemRepository(IDbContextFactory<JellyfinDbContext> dbPr
using var transaction = context.Database.BeginTransaction();
context.ItemValues.Where(e => e.Type == 6).ExecuteDelete();
- context.ItemValues.AddRange(context.ItemValues.Where(e => e.Type == 4).Select(e => new Data.Entities.ItemValue()
+ context.ItemValues.AddRange(context.ItemValues.Where(e => e.Type == 4).Select(e => new ItemValue()
{
CleanValue = e.CleanValue,
ItemId = e.ItemId,
@@ -93,7 +93,7 @@ public sealed class BaseItemRepository(IDbContextFactory<JellyfinDbContext> dbPr
}));
context.ItemValues.AddRange(
- context.AncestorIds.Where(e => e.AncestorIdText != null).Join(context.ItemValues.Where(e => e.Value != null && e.Type == 4), e => e.Id, e => e.ItemId, (e, f) => new Data.Entities.ItemValue()
+ context.AncestorIds.Join(context.ItemValues.Where(e => e.Value != null && e.Type == 4), e => e.ParentItemId, e => e.ItemId, (e, f) => new ItemValue()
{
CleanValue = f.CleanValue,
ItemId = e.ItemId,
@@ -893,31 +893,31 @@ public sealed class BaseItemRepository(IDbContextFactory<JellyfinDbContext> dbPr
if (!string.IsNullOrWhiteSpace(filter.HasNoAudioTrackWithLanguage))
{
baseQuery = baseQuery
- .Where(e => !e.MediaStreams!.Any(e => e.StreamType == "Audio" && e.Language == filter.HasNoAudioTrackWithLanguage));
+ .Where(e => !e.MediaStreams!.Any(e => e.StreamType == MediaStreamTypeEntity.Audio && e.Language == filter.HasNoAudioTrackWithLanguage));
}
if (!string.IsNullOrWhiteSpace(filter.HasNoInternalSubtitleTrackWithLanguage))
{
baseQuery = baseQuery
- .Where(e => !e.MediaStreams!.Any(e => e.StreamType == "Subtitle" && !e.IsExternal && e.Language == filter.HasNoInternalSubtitleTrackWithLanguage));
+ .Where(e => !e.MediaStreams!.Any(e => e.StreamType == MediaStreamTypeEntity.Subtitle && !e.IsExternal && e.Language == filter.HasNoInternalSubtitleTrackWithLanguage));
}
if (!string.IsNullOrWhiteSpace(filter.HasNoExternalSubtitleTrackWithLanguage))
{
baseQuery = baseQuery
- .Where(e => !e.MediaStreams!.Any(e => e.StreamType == "Subtitle" && e.IsExternal && e.Language == filter.HasNoExternalSubtitleTrackWithLanguage));
+ .Where(e => !e.MediaStreams!.Any(e => e.StreamType == MediaStreamTypeEntity.Subtitle && e.IsExternal && e.Language == filter.HasNoExternalSubtitleTrackWithLanguage));
}
if (!string.IsNullOrWhiteSpace(filter.HasNoSubtitleTrackWithLanguage))
{
baseQuery = baseQuery
- .Where(e => !e.MediaStreams!.Any(e => e.StreamType == "Subtitle" && e.Language == filter.HasNoSubtitleTrackWithLanguage));
+ .Where(e => !e.MediaStreams!.Any(e => e.StreamType == MediaStreamTypeEntity.Subtitle && e.Language == filter.HasNoSubtitleTrackWithLanguage));
}
if (filter.HasSubtitles.HasValue)
{
baseQuery = baseQuery
- .Where(e => e.MediaStreams!.Any(e => e.StreamType == "Subtitle") == filter.HasSubtitles.Value);
+ .Where(e => e.MediaStreams!.Any(e => e.StreamType == MediaStreamTypeEntity.Subtitle) == filter.HasSubtitles.Value);
}
if (filter.HasChapterImages.HasValue)
@@ -1062,7 +1062,7 @@ public sealed class BaseItemRepository(IDbContextFactory<JellyfinDbContext> dbPr
if (filter.AncestorIds.Length > 0)
{
- baseQuery = baseQuery.Where(e => e.AncestorIds!.Any(f => filter.AncestorIds.Contains(f.Id)));
+ baseQuery = baseQuery.Where(e => e.AncestorIds!.Any(f => filter.AncestorIds.Contains(f.ParentItemId)));
}
if (!string.IsNullOrWhiteSpace(filter.AncestorWithPresentationUniqueKey))
@@ -1273,9 +1273,7 @@ public sealed class BaseItemRepository(IDbContextFactory<JellyfinDbContext> dbPr
{
entity.AncestorIds.Add(new AncestorId()
{
- Item = entity,
- AncestorIdText = ancestorId.ToString(),
- Id = ancestorId,
+ ParentItemId = ancestorId,
ItemId = entity.Id
});
}
diff --git a/Jellyfin.Server.Implementations/Item/MediaAttachmentRepository.cs b/Jellyfin.Server.Implementations/Item/MediaAttachmentRepository.cs
index 70c5ff1e2e..d2034f6c5e 100644
--- a/Jellyfin.Server.Implementations/Item/MediaAttachmentRepository.cs
+++ b/Jellyfin.Server.Implementations/Item/MediaAttachmentRepository.cs
@@ -40,7 +40,7 @@ public class MediaAttachmentRepository(IDbContextFactory<JellyfinDbContext> dbPr
query = query.Where(e => e.Index == filter.Index);
}
- return query.ToList().Select(Map).ToImmutableArray();
+ return query.AsEnumerable().Select(Map).ToImmutableArray();
}
private MediaAttachment Map(AttachmentStreamInfo attachment)
diff --git a/Jellyfin.Server.Implementations/Item/MediaStreamRepository.cs b/Jellyfin.Server.Implementations/Item/MediaStreamRepository.cs
index df434fdb36..203071a6e0 100644
--- a/Jellyfin.Server.Implementations/Item/MediaStreamRepository.cs
+++ b/Jellyfin.Server.Implementations/Item/MediaStreamRepository.cs
@@ -70,7 +70,8 @@ public class MediaStreamRepository(IDbContextFactory<JellyfinDbContext> dbProvid
if (filter.Type.HasValue)
{
- query = query.Where(e => e.StreamType == filter.Type.ToString());
+ var typeValue = (MediaStreamTypeEntity)filter.Type.Value;
+ query = query.Where(e => e.StreamType!.Value == typeValue);
}
return query;
@@ -82,7 +83,7 @@ public class MediaStreamRepository(IDbContextFactory<JellyfinDbContext> dbProvid
dto.Index = entity.StreamIndex;
if (entity.StreamType != null)
{
- dto.Type = Enum.Parse<MediaStreamType>(entity.StreamType);
+ dto.Type = (MediaStreamType)entity.StreamType;
}
dto.IsAVC = entity.IsAvc;
@@ -151,7 +152,7 @@ public class MediaStreamRepository(IDbContextFactory<JellyfinDbContext> dbProvid
Item = null!,
ItemId = itemId,
StreamIndex = dto.Index,
- StreamType = dto.Type.ToString(),
+ StreamType = (MediaStreamTypeEntity)dto.Type,
IsAvc = dto.IsAVC.GetValueOrDefault(),
Codec = dto.Codec,
diff --git a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs
index 584dbd1b65..57f0503b9e 100644
--- a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs
+++ b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs
@@ -34,7 +34,7 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider) :
dbQuery = dbQuery.Take(filter.Limit);
}
- return dbQuery.ToList().Select(Map).ToImmutableArray();
+ return dbQuery.AsEnumerable().Select(Map).ToImmutableArray();
}
/// <inheritdoc/>