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)); } }
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); }