public static IConditionalQueryable <TSource> If <TSource>(this IConditionalQueryable <TSource> conditional, bool condition, Func <IQueryable <TSource>, IQueryable <TSource> > expression) => condition ? new ConditionalQueryable <TSource>(conditional.Source, e => expression(conditional.Expression(e)), condition) : new ConditionalQueryable <TSource>(conditional.Source, expression, condition);
public static TResult Else <TSource, TResult>(this IConditionalQueryable <TSource, TResult> conditional, Func <IQueryable <TSource>, TResult> expression) => conditional.IsMet ? conditional.Expression.Invoke(conditional.Source) : expression.Invoke(conditional.Source);
public static IQueryable <TSource> Else <TSource>(this IConditionalQueryable <TSource> conditional) => conditional.IsMet ? conditional.Expression.Invoke(conditional.Source) : conditional.Source;
public static IQueryable <TSource> Else <TSource>(this IConditionalQueryable <TSource> conditional, Func <IQueryable <TSource>, IQueryable <TSource> > expression) => conditional.IsMet ? conditional.Expression.Invoke(conditional.Source) : expression.Invoke(conditional.Source);
public static IConditionalQueryable <TSource, TResult> ElseIf <TSource, TResult>(this IConditionalQueryable <TSource, TResult> conditional, bool condition, Func <IQueryable <TSource>, TResult> expression) => conditional.IsMet ? conditional : new ConditionalQueryable <TSource, TResult>(conditional.Source, expression, condition);