Ejemplo n.º 1
0
        public static IQueryable <TData> Order <TData>(this IQueryable <TData> query, DataTableOrder[] orderParameters, DataTableResolver resolver)
            where TData : class
        {
            if (resolver == null)
            {
                throw new InvalidOperationException("A DataTable resolver is required to order.");
            }

            for (int i = 0; i < orderParameters.Length; i++)
            {
                bool isDesc = orderParameters[i].Direction == DataTableOrderDirection.DESC;

                var orderParameter = orderParameters[i];

                var orderableColumn = string.IsNullOrEmpty(orderParameter.ColumnName)
                                ? resolver.OrderableColumns[orderParameters[i].Column]
                                : resolver.OrderableColumns.FirstOrDefault(oc => string.Compare(oc, orderParameter.ColumnName, true) == 0);

                if (orderableColumn != null)
                {
                    query = i == 0 ? query.DynamicOrderBy(orderableColumn, isDesc) : query.DynamicThenBy(orderableColumn, isDesc);
                }
            }

            return(query);
        }
Ejemplo n.º 2
0
        public static IQueryable <TData> Search <TData>(this IQueryable <TData> query, DataTableSearch searchParameters, DataTableResolver resolver)
            where TData : class
        {
            if (resolver == null)
            {
                throw new InvalidOperationException("A DataTable resolver is required to search.");
            }

            if (!string.IsNullOrWhiteSpace(searchParameters.Value))
            {
                return(query.DynamicWhere(resolver.SearchableColumns, searchParameters.Value));
            }

            return(query);
        }
        public static IQueryable <TData> Order <TData>(this IQueryable <TData> query, DataTableOrder[] orderParameters, DataTableResolver resolver)
            where TData : class
        {
            if (resolver == null)
            {
                throw new InvalidOperationException("A DataTable resolver is required to order.");
            }

            for (int i = 0; i < orderParameters.Length; i++)
            {
                bool isDesc = orderParameters[i].Direction == DataTableOrderDirection.DESC;

                var orderableColumn = resolver.OrderableColumns[orderParameters[i].Column];

                if (orderableColumn != null)
                {
                    query = i == 0 ? query.DynamicOrderBy(orderableColumn, isDesc) : query.DynamicThenBy(orderableColumn, isDesc);
                }
            }

            return(query);
        }