Jo Shields 3c1f479b9d Imported Upstream version 4.0.0~alpha1
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
2015-04-07 09:35:12 +01:00

32 lines
959 B
C#

using System.Linq.Expressions;
namespace System.Web.Util {
internal sealed class OrderingMethodFinder : ExpressionVisitor {
private bool isTopLevelMethodCall = true;
private bool OrderingMethodFound {
get;
set;
}
protected override Expression VisitMethodCall(MethodCallExpression node) {
if (isTopLevelMethodCall && QueryableUtility.IsOrderingMethod(node)) {
OrderingMethodFound = true;
}
isTopLevelMethodCall = false;
Expression result = base.VisitMethodCall(node);
isTopLevelMethodCall = true;
return result;
}
internal static bool OrderMethodExists(Expression expression) {
OrderingMethodFinder obj = new OrderingMethodFinder();
obj.OrderingMethodFound = false;
obj.Visit(expression);
return obj.OrderingMethodFound;
}
}
}