コード例 #1
0
        public static IOrderedQueryable <T> OrderIf <T, Tkey>(this IQueryable <T> source, Expression <Func <T, Tkey> > order, OrderByStatus status, bool isEnable)

        {
            IOrderedQueryable <T> result = null;

            if (source == null || order == null)
            {
                return(null);
            }
            if (isEnable)
            {
                if (source.ContainOrderBy())
                {
                    result = status == OrderByStatus.Asc ? ((IOrderedQueryable <T>)source).ThenBy(order) : ((IOrderedQueryable <T>)source).ThenByDescending(order);
                }
                else
                {
                    result = status == OrderByStatus.Asc ? source.OrderBy(order) : source.OrderByDescending(order);
                }
            }
            else
            {
                result = (source as IOrderedQueryable <T>);
            }
            return(result);
        }
コード例 #2
0
        public static IOrderedQueryable <T> OrderIf <T, TKey>(this IQueryable <T> source, Expression <Func <T, TKey> > order, OrderByStatus status, bool isEnable)
        {
            IOrderedQueryable <T> orderedQueryable = (IOrderedQueryable <T>)null;

            if (source != null && order != null)
            {
                orderedQueryable = !isEnable ? source as IOrderedQueryable <T> : (!source.ContainsOrderBy <T>() ? (status != OrderByStatus.ASC ? source.OrderByDescending <T, TKey>(order) : source.OrderBy <T, TKey>(order)) : (status != OrderByStatus.ASC ? (source as IOrderedQueryable <T>).ThenByDescending <T, TKey>(order) : (source as IOrderedQueryable <T>).ThenBy <T, TKey>(order)));
            }
            return(orderedQueryable);
        }