From 2ee15c08e62b67d6f9bf31b5b9d943bda527ad17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Leb=C3=A9e?= Date: Tue, 6 Mar 2018 19:56:43 -0600 Subject: [PATCH] same extension methods on IEnumerable. --- .../Extensions/EnumerableExtensions.cs | 34 +++++++++++++++++++ .../Extensions/QueryableExtensions.cs | 5 +-- 2 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 PoweredSoft.DynamicLinq/Extensions/EnumerableExtensions.cs diff --git a/PoweredSoft.DynamicLinq/Extensions/EnumerableExtensions.cs b/PoweredSoft.DynamicLinq/Extensions/EnumerableExtensions.cs new file mode 100644 index 0000000..bdf64b8 --- /dev/null +++ b/PoweredSoft.DynamicLinq/Extensions/EnumerableExtensions.cs @@ -0,0 +1,34 @@ +using PoweredSoft.DynamicLinq.Fluent; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace PoweredSoft.DynamicLinq.Extensions +{ + public static class EnumerableExtensions + { + public static IEnumerable Where(this IEnumerable list, string path, ConditionOperators conditionOperator, object value, + QueryConvertStrategy convertStrategy = QueryConvertStrategy.ConvertConstantToComparedPropertyOrField, + QueryCollectionHandling collectionHandling = QueryCollectionHandling.Any, StringComparison? stringComparision = null) + => list.AsQueryable().Where(path, conditionOperator, value, convertStrategy: convertStrategy, collectionHandling: collectionHandling, stringComparision: stringComparision); + + public static IEnumerable Query(this IEnumerable list, Action> callback) + => list.AsQueryable().Query(callback); + + public static IEnumerable Sort(this IEnumerable list, string path, QuerySortDirection sortDirection, bool appendSort) + => list.AsQueryable().Sort(path, sortDirection, appendSort); + + public static IEnumerable OrderBy(this IEnumerable list, string path) + => list.AsQueryable().OrderBy(path); + + public static IEnumerable OrderByDescending(this IEnumerable list, string path) + => list.AsQueryable().OrderByDescending(path); + + public static IEnumerable ThenBy(this IEnumerable list, string path) + => list.AsQueryable().ThenBy(path); + + public static IEnumerable ThenByDescending(this IEnumerable list, string path) + => list.AsQueryable().ThenByDescending(path); + } +} diff --git a/PoweredSoft.DynamicLinq/Extensions/QueryableExtensions.cs b/PoweredSoft.DynamicLinq/Extensions/QueryableExtensions.cs index 4841f57..d39307f 100644 --- a/PoweredSoft.DynamicLinq/Extensions/QueryableExtensions.cs +++ b/PoweredSoft.DynamicLinq/Extensions/QueryableExtensions.cs @@ -12,9 +12,10 @@ namespace PoweredSoft.DynamicLinq.Extensions public static class QueryableExtensions { public static IQueryable Where(this IQueryable query, string path, ConditionOperators conditionOperator, object value, - QueryConvertStrategy convertStrategy = QueryConvertStrategy.ConvertConstantToComparedPropertyOrField) + QueryConvertStrategy convertStrategy = QueryConvertStrategy.ConvertConstantToComparedPropertyOrField, + QueryCollectionHandling collectionHandling = QueryCollectionHandling.Any, StringComparison? stringComparision = null) { - query = query.Query(qb => qb.Compare(path, conditionOperator, value, convertStrategy: convertStrategy)); + query = query.Query(qb => qb.Compare(path, conditionOperator, value, convertStrategy: convertStrategy, collectionHandling: collectionHandling, stringComparision: stringComparision)); return query; }