Xamarin Public Jenkins (auto-signing) e79aa3c0ed Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
2016-08-03 10:59:49 +00: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;
}
}
}