/// <summary> /// Applies a series of predicates as filters on an IEnumerable. /// </summary> /// <typeparam name="T">The entity that you are querying.</typeparam> /// <param name="enumerable">An IEnumerable of type T entity.</param> /// <param name="baseQuery">A query object that will apply a series of filters.</param> /// <returns>A filtered IEnumerable of type T.</returns> public static IEnumerable <T> NPredicateBuilderWhere <T>(this IEnumerable <T> enumerable, BaseQuery <T> baseQuery) { if (baseQuery.SearchExpression == null) { throw new ArgumentNullException(nameof(enumerable)); } return(enumerable.Where(baseQuery.SearchExpression.Compile())); }
/// <summary> /// Appends an additional search expression on an already existing search expressing using the Or comparison. /// </summary> /// <param name="currentQuery">The search expression that you are appending to the end of an already existing expression.</param> /// <returns>A new search expression that contains all previous expressions.</returns> public BaseQuery <T> Or(BaseQuery <T> currentQuery) { SearchExpression = Or(currentQuery.SearchExpression); return(this); }