From d28ee96f06f57483c24f5cfcb14152c6b79a9c7d Mon Sep 17 00:00:00 2001 From: Lampan-git <22211983+Lampan-git@users.noreply.github.com> Date: Tue, 25 Feb 2025 17:35:28 +0100 Subject: [PATCH] Include PeopleBaseItemMap in GetPeople --- .../Item/PeopleRepository.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs index a8dfd4cd3a..77b00a41a0 100644 --- a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs +++ b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs @@ -39,6 +39,30 @@ public class PeopleRepository(IDbContextFactory 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(); }