|
@@ -35,16 +35,22 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider, I
|
|
using var context = _dbProvider.CreateDbContext();
|
|
using var context = _dbProvider.CreateDbContext();
|
|
var dbQuery = TranslateQuery(context.Peoples.AsNoTracking(), context, filter);
|
|
var dbQuery = TranslateQuery(context.Peoples.AsNoTracking(), context, filter);
|
|
|
|
|
|
- // dbQuery = dbQuery.OrderBy(e => e.ListOrder);
|
|
|
|
- if (filter.Limit > 0)
|
|
|
|
|
|
+ // Include PeopleBaseItemMap
|
|
|
|
+ if (!filter.ItemId.IsEmpty())
|
|
{
|
|
{
|
|
- dbQuery = dbQuery.Take(filter.Limit);
|
|
|
|
|
|
+ dbQuery = dbQuery.Include(p => p.BaseItems!.Where(m => m.ItemId == filter.ItemId))
|
|
|
|
+ .OrderBy(e => e.BaseItems!.First(e => e.ItemId == filter.ItemId).ListOrder)
|
|
|
|
+ .ThenBy(e => e.PersonType)
|
|
|
|
+ .ThenBy(e => e.Name);
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ dbQuery = dbQuery.OrderBy(e => e.Name);
|
|
}
|
|
}
|
|
|
|
|
|
- // Include PeopleBaseItemMap
|
|
|
|
- if (!filter.ItemId.IsEmpty())
|
|
|
|
|
|
+ if (filter.Limit > 0)
|
|
{
|
|
{
|
|
- dbQuery = dbQuery.Include(p => p.BaseItems!.Where(m => m.ItemId == filter.ItemId));
|
|
|
|
|
|
+ dbQuery = dbQuery.Take(filter.Limit);
|
|
}
|
|
}
|
|
|
|
|
|
return dbQuery.AsEnumerable().Select(Map).ToArray();
|
|
return dbQuery.AsEnumerable().Select(Map).ToArray();
|
|
@@ -84,14 +90,15 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider, I
|
|
var existingMap = maps.FirstOrDefault(e => e.PeopleId == person.Id);
|
|
var existingMap = maps.FirstOrDefault(e => e.PeopleId == person.Id);
|
|
if (existingMap is null)
|
|
if (existingMap is null)
|
|
{
|
|
{
|
|
|
|
+ var sortOrder = (person.SortOrder ?? context.PeopleBaseItemMap.Where(e => e.ItemId == itemId).Max(e => e.SortOrder) ?? 0) + 1;
|
|
context.PeopleBaseItemMap.Add(new PeopleBaseItemMap()
|
|
context.PeopleBaseItemMap.Add(new PeopleBaseItemMap()
|
|
{
|
|
{
|
|
Item = null!,
|
|
Item = null!,
|
|
ItemId = itemId,
|
|
ItemId = itemId,
|
|
People = null!,
|
|
People = null!,
|
|
PeopleId = person.Id,
|
|
PeopleId = person.Id,
|
|
- ListOrder = person.SortOrder,
|
|
|
|
- SortOrder = person.SortOrder,
|
|
|
|
|
|
+ ListOrder = sortOrder,
|
|
|
|
+ SortOrder = sortOrder,
|
|
Role = person.Role
|
|
Role = person.Role
|
|
});
|
|
});
|
|
}
|
|
}
|