mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-24 02:02:36 -04:00
Invaliding enum sort key
This commit is contained in:
parent
d77cae6d2b
commit
f561b6044c
@ -69,16 +69,20 @@ namespace Kyoo.Controllers
|
||||
{
|
||||
if (where != null)
|
||||
query = query.Where(where);
|
||||
|
||||
|
||||
Expression<Func<TValue, object>> sortKey = sort.Key ?? defaultSort;
|
||||
Expression sortExpression = sortKey.Body.NodeType == ExpressionType.Convert
|
||||
? ((UnaryExpression)sortKey.Body).Operand
|
||||
: sortKey.Body;
|
||||
|
||||
if (typeof(Enum).IsAssignableFrom(sortExpression.Type))
|
||||
throw new ArgumentException("Invalid sort key.");
|
||||
|
||||
query = sort.Descendant ? query.OrderByDescending(sortKey) : query.OrderBy(sortKey);
|
||||
|
||||
if (limit.AfterID != 0)
|
||||
{
|
||||
TValue after = await get(limit.AfterID);
|
||||
Expression sortExpression = sortKey.Body.NodeType == ExpressionType.Convert
|
||||
? ((UnaryExpression)sortKey.Body).Operand
|
||||
: sortKey.Body;
|
||||
Expression key = Expression.Constant(sortKey.Compile()(after), sortExpression.Type);
|
||||
query = query.Where(Expression.Lambda<Func<TValue, bool>>(
|
||||
ApiHelper.StringCompatibleExpression(Expression.GreaterThan, sortExpression, key),
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 45afdbb44ed28b5ee408923b6d4d13534e284517
|
||||
Subproject commit d692f9f3d364d7d2748205374a3a84fb1fd4a938
|
Loading…
x
Reference in New Issue
Block a user