Skip to content

Commit 8f1fc0a

Browse files
committed
Revert "QueryableExtension OrderBy() should not use ExpressionParser"
This reverts commit a389dc7.
1 parent 538ec3c commit 8f1fc0a

File tree

2 files changed

+30
-30
lines changed

2 files changed

+30
-30
lines changed

Radzen.Blazor/DynamicExtensions.cs

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -70,36 +70,7 @@ public static IOrderedQueryable<T> OrderBy<T>(
7070
{
7171
try
7272
{
73-
selector = $"{selector}";
74-
75-
if (selector.Contains("=>"))
76-
{
77-
var identifierName = selector.Split("=>")[0];
78-
79-
selector = selector.Replace($"{identifierName}=>", "").Trim();
80-
81-
string methodAsc = "OrderBy";
82-
string methodDesc = "OrderByDescending";
83-
84-
Expression expression = source.Expression;
85-
86-
foreach (var part in selector.Split(","))
87-
{
88-
var lambda = ExpressionParser.ParseLambda<T>($"{identifierName.Trim()} => {part}");
89-
90-
expression = Expression.Call(
91-
typeof(Queryable), part.Trim().ToLower().Contains(" desc") ? methodDesc : methodAsc,
92-
new Type[] { source.ElementType, lambda.ReturnType },
93-
expression, Expression.Quote(lambda));
94-
95-
methodAsc = "ThenBy";
96-
methodDesc = "ThenByDescending";
97-
}
98-
99-
return (IOrderedQueryable<T>)source.Provider.CreateQuery(expression);
100-
}
101-
102-
return (IOrderedQueryable<T>)QueryableExtension.OrderBy((IQueryable)source, selector);
73+
return QueryableExtension.OrderBy(source, selector);
10374
}
10475
catch (Exception ex)
10576
{

Radzen.Blazor/QueryableExtension.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,35 @@ internal static string RemoveVariableReference(string expression)
108108
/// <returns>A <see cref="IQueryable{T}"/> whose elements are sorted according to the specified <paramref name="selector"/>.</returns>
109109
public static IOrderedQueryable<T> OrderBy<T>(this IQueryable<T> source, string selector = null)
110110
{
111+
selector = $"{selector}";
112+
113+
if (selector.Contains("=>"))
114+
{
115+
var identifierName = selector.Split("=>")[0];
116+
117+
selector = selector.Replace($"{identifierName}=>", "").Trim();
118+
119+
string methodAsc = "OrderBy";
120+
string methodDesc = "OrderByDescending";
121+
122+
Expression expression = source.Expression;
123+
124+
foreach (var part in selector.Split(","))
125+
{
126+
var lambda = ExpressionParser.ParseLambda<T>($"{identifierName.Trim()} => {part}");
127+
128+
expression = Expression.Call(
129+
typeof(Queryable), part.Trim().ToLower().Contains(" desc") ? methodDesc : methodAsc,
130+
new Type[] { source.ElementType, lambda.ReturnType },
131+
expression, Expression.Quote(lambda));
132+
133+
methodAsc = "ThenBy";
134+
methodDesc = "ThenByDescending";
135+
}
136+
137+
return (IOrderedQueryable<T>)source.Provider.CreateQuery(expression);
138+
}
139+
111140
return (IOrderedQueryable<T>)OrderBy((IQueryable)source, selector);
112141
}
113142

0 commit comments

Comments
 (0)