public static IComparisonExpression <T> Compare <T, K>(this IComparisonDeclaration <T> parameters, Expression <Func <T, K> > selector, bool nullOrder, bool order) where K : class, IComparable <K> { if (parameters == null) { throw new NullReferenceException(); } if (selector == null) { throw new ArgumentNullException("selector"); } return(new ComparisonExpressionImpl <T>(CompareCore(parameters.Parameters, selector, order ? ReverseComparison(ObjectComparison(ComparableComparison <K>(), nullOrder)) : ObjectComparison(ComparableComparison <K>(), nullOrder)))); }
public static IComparisonExpression <T> Compare <T, K>(this IComparisonDeclaration <T> parameters, Expression <Func <T, K> > selector, IComparer <K> comparer, bool order) { if (parameters == null) { throw new NullReferenceException(); } if (selector == null) { throw new ArgumentNullException("selector"); } if (comparer == null) { throw new ArgumentNullException("comparison"); } return(new ComparisonExpressionImpl <T>(CompareCore(parameters.Parameters, selector, order ? ReverseComparison(ComparerComparison(comparer)) : ComparerComparison(comparer)))); }
public static IComparisonExpression <T> Compare <T, K>(this IComparisonDeclaration <T> parameters, Expression <Func <T, K?> > selector, Expression <Comparison <K> > comparison, bool nullOrder, bool order) where K : struct { if (parameters == null) { throw new NullReferenceException(); } if (selector == null) { throw new ArgumentNullException("selector"); } if (comparison == null) { throw new ArgumentNullException("comparison"); } return(new ComparisonExpressionImpl <T>(CompareCore(parameters.Parameters, selector, order ? ReverseComparison(NullableComparison(comparison, nullOrder)) : NullableComparison(comparison, nullOrder)))); }
public static IComparisonExpression <T> Descend <T, K>(this IComparisonDeclaration <T> parameters, Expression <Func <T, K> > selector) where K : IComparable <K> { return(Compare(parameters, selector, true)); }
public static IComparisonExpression <T> Descend <T, K>(this IComparisonDeclaration <T> parameters, Expression <Func <T, K?> > selector, IComparer <K> comparer, bool nullOrder) where K : struct { return(Compare(parameters, selector, comparer, nullOrder, true)); }
public static IComparisonExpression <T> Ascend <T, K>(this IComparisonDeclaration <T> parameters, Expression <Func <T, K> > selector, IComparer <K> comparer, bool nullOrder) where K : class { return(Compare(parameters, selector, comparer, nullOrder, false)); }
public static IComparisonExpression <T> Descend <T, K>(this IComparisonDeclaration <T> parameters, Expression <Func <T, K> > selector, IComparer <K> comparer) { return(Compare(parameters, selector, comparer, true)); }
public static IComparisonExpression <T> Ascend <T, K>(this IComparisonDeclaration <T> parameters, Expression <Func <T, K> > selector, Expression <Comparison <K> > comparison) { return(Compare(parameters, selector, comparison, false)); }