dotnet-dynamic-linq/PoweredSoft.DynamicLinq/Constants.cs

84 lines
3.0 KiB
C#
Raw Permalink Normal View History

2018-02-11 20:55:29 -05:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace PoweredSoft.DynamicLinq
{
public enum ConditionOperators
{
Equal,
NotEqual,
2018-02-11 20:55:29 -05:00
GreaterThan,
GreaterThanOrEqual,
LessThan,
LessThanOrEqual,
Contains,
2019-03-19 17:54:48 -04:00
NotContains,
2018-02-11 20:55:29 -05:00
StartsWith,
2018-03-06 22:04:54 -05:00
EndsWith,
In,
NotIn
2018-02-11 20:55:29 -05:00
}
2018-02-12 04:30:55 -05:00
public enum QueryConvertStrategy
{
LeaveAsIs,
2018-03-06 19:34:28 -05:00
ConvertConstantToComparedPropertyOrField,
SpecifyType
2018-02-12 04:30:55 -05:00
}
public enum QueryCollectionHandling
{
Any,
All
}
public enum QueryOrderByDirection
2018-02-20 22:21:23 -05:00
{
Ascending,
Descending
}
public enum SelectTypes
{
Key,
Count,
LongCount,
Sum,
Average,
2018-03-21 21:00:46 -04:00
ToList,
2018-10-25 21:02:17 -04:00
Path,
Min,
Max,
LastOrDefault,
FirstOrDefault,
Last,
First,
}
public enum SelectCollectionHandling
{
LeaveAsIs,
Flatten
}
2018-02-11 20:55:29 -05:00
internal static class Constants
{
2018-03-08 22:59:18 -05:00
internal static readonly MethodInfo GroupByMethod = typeof(Queryable).GetMethods().First(t => t.Name == "GroupBy");
2018-03-12 19:00:02 -04:00
internal static readonly MethodInfo GroupByMethodWithEqualityComparer = typeof(Queryable).GetMethods().First(t => t.Name == "GroupBy" && t.GetParameters().Any(t2 => t2.Name == "comparer"));
2018-03-06 20:43:49 -05:00
internal static readonly MethodInfo StringEqualWithComparisation = typeof(string).GetMethod("Equals", new Type[] { typeof(string), typeof(StringComparison) });
internal static readonly MethodInfo ContainsMethod = typeof(string).GetMethod("Contains", new Type[] { typeof(string) });
2018-02-11 20:55:29 -05:00
internal static readonly MethodInfo StartsWithMethod = typeof(string).GetMethod("StartsWith", new Type[] { typeof(string) });
2018-03-06 20:43:49 -05:00
internal static readonly MethodInfo StartsWithMethodWithComparisation = typeof(string).GetMethod("StartsWith", new Type[] { typeof(string), typeof(StringComparison) });
2018-02-11 20:55:29 -05:00
internal static readonly MethodInfo EndsWithMethod = typeof(string).GetMethod("EndsWith", new Type[] { typeof(string) });
2018-03-06 20:43:49 -05:00
internal static readonly MethodInfo EndsWithMethodWithComparisation = typeof(string).GetMethod("EndsWith", new Type[] { typeof(string), typeof(StringComparison) });
internal static readonly MethodInfo IndexOfMethod = typeof(string).GetMethod("IndexOf", new Type[] { typeof(string), typeof(StringComparison) });
internal static readonly MethodInfo AnyMethod = typeof(Enumerable).GetMethods(BindingFlags.Static | BindingFlags.Public).First(t => t.Name == "Any" && t.GetParameters().Count() == 2);
internal static readonly MethodInfo AllMethod = typeof(Enumerable).GetMethods(BindingFlags.Static | BindingFlags.Public).First(t => t.Name == "All" && t.GetParameters().Count() == 2);
internal static readonly MethodInfo CompareToMethod = typeof(string).GetMethod("CompareTo", new Type[] { typeof(string) });
2018-02-11 20:55:29 -05:00
}
}