示例#1
0
        public static IOrderedQueryable <T> Ordering <T>(IQueryable <T> input, List <OrderInput> orderInputs)
        {
            var parameter       = Expression.Parameter(typeof(T), "p");
            var firstOrderInput = orderInputs[0];
            var result          = firstOrderInput.Order == OrderTypeEnum.Asc
                ? OrderingHelper.OrderBy(input, firstOrderInput.Property, parameter)
                : OrderingHelper.OrderByDescending(input, firstOrderInput.Property, parameter);

            for (int i = 1; i < orderInputs.Count; i++)
            {
                var orderInput = orderInputs[i];
                result = orderInput.Order == OrderTypeEnum.Asc
                    ? OrderingHelper.ThenBy(result, orderInput.Property, parameter)
                    : OrderingHelper.ThenByDescending(result, orderInput.Property, parameter);
            }

            return(result);
        }
 public static IOrderedQueryable <T> ThenByDescending <T>(this IOrderedQueryable <T> source, string propertyName) => OrderingHelper <T> .ThenByDescending(source, propertyName);