Imported Upstream version 4.6.0.125

Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2016-08-03 10:59:49 +00:00
parent a569aebcfd
commit e79aa3c0ed
17047 changed files with 3137615 additions and 392334 deletions

View File

@ -0,0 +1,38 @@
using System.Linq;
using System.Web.Util;
namespace System.Web.UI.WebControls {
internal static class QueryableHelpers {
//Methods in this class are found using GetMethod - so avoid defining overloads of the methods.
//This method is a helper to be able to use reflection on only this method instead of each SortyBy, Skip and Take methods.
public static IQueryable<T> SortandPageHelper<T>(IQueryable<T> queryable, int? startRowIndex, int? maxRowIndex, string sortExpression) where T : class {
if (queryable == null)
throw new ArgumentNullException("queryable");
if (!String.IsNullOrEmpty(sortExpression)) {
queryable = queryable.SortBy<T>(sortExpression);
}
if (startRowIndex != null && maxRowIndex != null) {
queryable = queryable.Skip<T>((int)startRowIndex).Take<T>((int)maxRowIndex);
}
return queryable;
}
//This method is a helper to be able to use GetMethod to get this one method and execute instead of finding the Count method on Queryable class.
public static int CountHelper<T>(IQueryable<T> queryable) where T : class {
if (queryable == null)
throw new ArgumentNullException("queryable");
return queryable.Count<T>();
}
public static bool IsOrderingMethodFound<T>(IQueryable<T> queryable) where T : class {
return OrderingMethodFinder.OrderMethodExists(queryable.Expression);
}
}
}