diff options
| author | Lampan-git <22211983+Lampan-git@users.noreply.github.com> | 2025-02-25 17:35:28 +0100 |
|---|---|---|
| committer | Lampan-git <22211983+Lampan-git@users.noreply.github.com> | 2025-02-25 18:10:50 +0100 |
| commit | d28ee96f06f57483c24f5cfcb14152c6b79a9c7d (patch) | |
| tree | 80e15da5fa48a652c78394cf18cc492c2b43125a /Jellyfin.Server.Implementations | |
| parent | 068bc687647ed894a2ae05d5b1e24770415bc8ec (diff) | |
Include PeopleBaseItemMap in GetPeople
Diffstat (limited to 'Jellyfin.Server.Implementations')
| -rw-r--r-- | Jellyfin.Server.Implementations/Item/PeopleRepository.cs | 24 |
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(); } |
