Ejemplo n.º 1
0
        public DataFilter <TModel> AddCustomOrderExpression(string orderByField, string orderByDirection, Expression <Func <TModel, Object> > expression)
        {
            DataFilterOrderExpression <TModel> expr = new DataFilterOrderExpression <TModel>
            {
                OrderByField     = orderByField,
                OrderByDirection = orderByDirection,
                Expression       = expression
            };

            CustomOrderExpressionList.Add(expr);
            return(this);
        }
        private static IQueryable <T> GetCustomOrderedQuery <T>(IQueryable <T> queryable, DataFilter <T> filter)
            where T : BaseModel
        {
            DataFilterOrderExpression <T> custom = filter.CustomOrderExpressionList
                                                   .FirstOrDefault(x => x.OrderByField == filter.OrderByField && x.OrderByDirection == filter.OrderByDirection);

            if (custom.OrderByDirection == "ASC")
            {
                return(queryable.OrderBy(custom.Expression));
            }
            else
            {
                return(queryable.OrderByDescending(custom.Expression));
            }
        }
Ejemplo n.º 3
0
        public DataFilter <TModel> AddCustomOrderExpression(string orderByField, Expression <Func <TModel, Object> > expressionASC, Expression <Func <TModel, Object> > expressionDESC)
        {
            DataFilterOrderExpression <TModel> exprASC = new DataFilterOrderExpression <TModel>
            {
                OrderByField     = orderByField,
                OrderByDirection = "ASC",
                Expression       = expressionASC
            };
            DataFilterOrderExpression <TModel> exprDESC = new DataFilterOrderExpression <TModel>
            {
                OrderByField     = orderByField,
                OrderByDirection = "DESC",
                Expression       = expressionDESC
            };

            CustomOrderExpressionList.Add(exprASC);
            CustomOrderExpressionList.Add(exprDESC);
            return(this);
        }