/// <summary>
        /// Creates a Where method call expression to be invoked on an expression e.g. (parameter, member, method call) of type IQueryable<T>.
        /// </summary>
        /// <typeparam name="TSource"></typeparam>
        /// <param name="expression"></param>
        /// <param name="filterGroup"></param>
        /// <param name="parameterName"></param>
        /// <returns></returns>
        public static MethodCallExpression GetWhere <TSource>(this Expression expression, DataSource.FilterGroup filterGroup) where TSource : class
        {
            LambdaExpression filterExpression = filterGroup.GetFilterExpression <TSource>();

            Type[] genericArgumentsForMethod = new Type[] { typeof(TSource) };

            return(Expression.Call(typeof(Queryable), "Where", genericArgumentsForMethod, expression, filterExpression));
        }
예제 #2
0
 private static Expression <Func <T, bool> > _GetFilterExpression <T>(this FilterGroup filterGroup, string parameterName = "f") where T : class
 => filterGroup.GetFilterExpression <T>(parameterName);