diff options
| author | theguymadmax <theguymadmax@proton.me> | 2025-09-24 19:37:07 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-24 17:37:07 -0600 |
| commit | 60fbd39bb9e4043c23ebd836a5d6794edcfad472 (patch) | |
| tree | a4b71083be06d6fd006708b1dc757f9e1381659b /Jellyfin.Server.Implementations/Item/PeopleRepository.cs | |
| parent | 740b9924a011c260d9f079d111a47351037d5ad3 (diff) | |
Fix people sort order (#14852)
Diffstat (limited to 'Jellyfin.Server.Implementations/Item/PeopleRepository.cs')
| -rw-r--r-- | Jellyfin.Server.Implementations/Item/PeopleRepository.cs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs index 0f423cf5d..3fe5d090d 100644 --- a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs +++ b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs @@ -98,13 +98,18 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider, I var personsEntities = toAdd.Concat(existingPersons).ToArray(); var existingMaps = context.PeopleBaseItemMap.Include(e => e.People).Where(e => e.ItemId == itemId).ToList(); + + var maxSortOrder = Math.Max( + context.PeopleBaseItemMap.Include(e => e.People).Where(e => e.ItemId == itemId && e.People.PersonType == PersonKind.Actor.ToString()).Max(e => (int?)e.SortOrder) ?? 0, + people.Where(p => p.Type == PersonKind.Actor && p.SortOrder.HasValue).Max(p => (int?)p.SortOrder) ?? 0); + foreach (var person in people) { var entityPerson = personsEntities.First(e => e.Name == person.Name && e.PersonType == person.Type.ToString()); var existingMap = existingMaps.FirstOrDefault(e => e.People.Name == person.Name && e.Role == person.Role); if (existingMap is null) { - var sortOrder = (person.SortOrder ?? context.PeopleBaseItemMap.Where(e => e.ItemId == itemId).Max(e => e.SortOrder) ?? 0) + 1; + var sortOrder = person.Type == PersonKind.Actor ? (person.SortOrder ?? ++maxSortOrder) : person.SortOrder; context.PeopleBaseItemMap.Add(new PeopleBaseItemMap() { Item = null!, |
