mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-11-02 10:37:20 -05:00
Restore NFO/import ordering by using ListOrder instead of SortOrder
This commit is contained in:
parent
54d48fa446
commit
2a54669a8a
@ -104,9 +104,7 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider, I
|
|||||||
|
|
||||||
var existingMaps = context.PeopleBaseItemMap.Include(e => e.People).Where(e => e.ItemId == itemId).ToList();
|
var existingMaps = context.PeopleBaseItemMap.Include(e => e.People).Where(e => e.ItemId == itemId).ToList();
|
||||||
|
|
||||||
var maxSortOrder = Math.Max(
|
var listOrder = 0;
|
||||||
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)
|
foreach (var person in people)
|
||||||
{
|
{
|
||||||
@ -114,23 +112,27 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider, I
|
|||||||
var existingMap = existingMaps.FirstOrDefault(e => e.People.Name == person.Name && e.People.PersonType == person.Type.ToString() && e.Role == person.Role);
|
var existingMap = existingMaps.FirstOrDefault(e => e.People.Name == person.Name && e.People.PersonType == person.Type.ToString() && e.Role == person.Role);
|
||||||
if (existingMap is null)
|
if (existingMap is null)
|
||||||
{
|
{
|
||||||
var sortOrder = person.Type == PersonKind.Actor ? (person.SortOrder ?? ++maxSortOrder) : person.SortOrder;
|
|
||||||
context.PeopleBaseItemMap.Add(new PeopleBaseItemMap()
|
context.PeopleBaseItemMap.Add(new PeopleBaseItemMap()
|
||||||
{
|
{
|
||||||
Item = null!,
|
Item = null!,
|
||||||
ItemId = itemId,
|
ItemId = itemId,
|
||||||
People = null!,
|
People = null!,
|
||||||
PeopleId = entityPerson.Id,
|
PeopleId = entityPerson.Id,
|
||||||
ListOrder = sortOrder,
|
ListOrder = listOrder,
|
||||||
SortOrder = sortOrder,
|
SortOrder = person.SortOrder,
|
||||||
Role = person.Role
|
Role = person.Role
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// Update the order for existing mappings
|
||||||
|
existingMap.ListOrder = listOrder;
|
||||||
|
existingMap.SortOrder = person.SortOrder;
|
||||||
// person mapping already exists so remove from list
|
// person mapping already exists so remove from list
|
||||||
existingMaps.Remove(existingMap);
|
existingMaps.Remove(existingMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
listOrder++;
|
||||||
}
|
}
|
||||||
|
|
||||||
context.PeopleBaseItemMap.RemoveRange(existingMaps);
|
context.PeopleBaseItemMap.RemoveRange(existingMaps);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user