mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-06-03 13:44:22 -04:00
Fixed ItemSorting
This commit is contained in:
parent
fb48d0790f
commit
c6e67edd86
@ -228,12 +228,14 @@ public sealed class BaseItemRepository(
|
|||||||
.Include(e => e.Images)
|
.Include(e => e.Images)
|
||||||
.Include(e => e.LockedFields);
|
.Include(e => e.LockedFields);
|
||||||
dbQuery = TranslateQuery(dbQuery, context, filter);
|
dbQuery = TranslateQuery(dbQuery, context, filter);
|
||||||
// .DistinctBy(e => e.Id);
|
// .DistinctBy(e => e.Id);
|
||||||
if (filter.EnableTotalRecordCount)
|
if (filter.EnableTotalRecordCount)
|
||||||
{
|
{
|
||||||
result.TotalRecordCount = dbQuery.Count();
|
result.TotalRecordCount = dbQuery.Count();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dbQuery = ApplyOrder(dbQuery, filter);
|
||||||
|
|
||||||
if (filter.Limit.HasValue || filter.StartIndex.HasValue)
|
if (filter.Limit.HasValue || filter.StartIndex.HasValue)
|
||||||
{
|
{
|
||||||
var offset = filter.StartIndex ?? 0;
|
var offset = filter.StartIndex ?? 0;
|
||||||
@ -267,6 +269,7 @@ public sealed class BaseItemRepository(
|
|||||||
.Include(e => e.Images)
|
.Include(e => e.Images)
|
||||||
.Include(e => e.LockedFields);
|
.Include(e => e.LockedFields);
|
||||||
dbQuery = TranslateQuery(dbQuery, context, filter);
|
dbQuery = TranslateQuery(dbQuery, context, filter);
|
||||||
|
dbQuery = ApplyOrder(dbQuery, filter);
|
||||||
if (filter.Limit.HasValue || filter.StartIndex.HasValue)
|
if (filter.Limit.HasValue || filter.StartIndex.HasValue)
|
||||||
{
|
{
|
||||||
var offset = filter.StartIndex ?? 0;
|
var offset = filter.StartIndex ?? 0;
|
||||||
@ -2110,19 +2113,35 @@ public sealed class BaseItemRepository(
|
|||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var item in orderBy)
|
IOrderedQueryable<BaseItemEntity>? orderedQuery = null;
|
||||||
|
|
||||||
|
var firstOrdering = orderBy.FirstOrDefault();
|
||||||
|
if (firstOrdering != default)
|
||||||
|
{
|
||||||
|
var expression = MapOrderByField(firstOrdering.OrderBy, filter);
|
||||||
|
if (firstOrdering.SortOrder == SortOrder.Ascending)
|
||||||
|
{
|
||||||
|
orderedQuery = query.OrderBy(expression);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
orderedQuery = query.OrderByDescending(expression);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var item in orderBy.Skip(1))
|
||||||
{
|
{
|
||||||
var expression = MapOrderByField(item.OrderBy, filter);
|
var expression = MapOrderByField(item.OrderBy, filter);
|
||||||
if (item.SortOrder == SortOrder.Ascending)
|
if (item.SortOrder == SortOrder.Ascending)
|
||||||
{
|
{
|
||||||
query = query.OrderBy(expression);
|
orderedQuery = orderedQuery!.ThenBy(expression);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
query = query.OrderByDescending(expression);
|
orderedQuery = orderedQuery!.ThenByDescending(expression);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return query;
|
return orderedQuery ?? query;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user