aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLampan-git <22211983+Lampan-git@users.noreply.github.com>2025-02-25 17:35:28 +0100
committerLampan-git <22211983+Lampan-git@users.noreply.github.com>2025-02-25 18:10:50 +0100
commitd28ee96f06f57483c24f5cfcb14152c6b79a9c7d (patch)
tree80e15da5fa48a652c78394cf18cc492c2b43125a
parent068bc687647ed894a2ae05d5b1e24770415bc8ec (diff)
Include PeopleBaseItemMap in GetPeople
-rw-r--r--Jellyfin.Server.Implementations/Item/PeopleRepository.cs24
1 files changed, 24 insertions, 0 deletions
diff --git a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs
index a8dfd4cd3..77b00a41a 100644
--- a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs
+++ b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs
@@ -39,6 +39,30 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider, I
dbQuery = dbQuery.Take(filter.Limit);
}
+ // Include PeopleBaseItemMap
+ if (!filter.ItemId.IsEmpty())
+ {
+ var people = dbQuery.ToArray();
+ var peopleIds = people.Select(p => p.Id).ToArray();
+
+ var mappings = context.PeopleBaseItemMap
+ .AsNoTracking()
+ .Where(m => peopleIds.Contains(m.PeopleId) && m.ItemId == filter.ItemId)
+ .ToDictionary(m => m.PeopleId);
+
+ return people.Select(p =>
+ {
+ var personInfo = Map(p);
+ if (mappings.TryGetValue(p.Id, out var mapping))
+ {
+ personInfo.Role = mapping.Role;
+ personInfo.SortOrder = mapping.SortOrder;
+ }
+
+ return personInfo;
+ }).ToArray();
+ }
+
return dbQuery.AsEnumerable().Select(Map).ToArray();
}