public static IOrderedSpecificationBuilder <T> ThenBy <T>( this IOrderedSpecificationBuilder <T> orderedBuilder, Expression <Func <T, object?> > orderExpression) { ((List <(Expression <Func <T, object?> > OrderExpression, OrderTypeEnum OrderType)>)orderedBuilder.Specification.OrderExpressions) .Add((orderExpression, OrderTypeEnum.ThenBy)); return(orderedBuilder); }
public static IOrderedSpecificationBuilder <T> ThenByDescending <T>( this IOrderedSpecificationBuilder <T> orderedBuilder, Expression <Func <T, object?> > orderExpression, bool condition) { if (condition && !orderedBuilder.IsChainDiscarded) { ((List <OrderExpressionInfo <T> >)orderedBuilder.Specification.OrderExpressions).Add(new OrderExpressionInfo <T>(orderExpression, OrderTypeEnum.ThenByDescending)); } else { orderedBuilder.IsChainDiscarded = true; } return(orderedBuilder); }
public static IOrderedSpecificationBuilder <T> ThenBy <T>( this IOrderedSpecificationBuilder <T> orderedBuilder, Expression <Func <T, object?> > orderExpression) => ThenBy(orderedBuilder, orderExpression, true);