public ClassFilter CreateSearchFilter(DataAspect aspect, string filter) { if (string.IsNullOrEmpty(filter)) { return(null); } else if (filter.Length < 3) { filter = filter + "%"; } else { filter = "%" + filter.Replace(' ', '%') + "%"; } Type stringType = typeof(string); ClassFilterExpression expression = null; DataAspect dataAspect = aspect; int count = dataAspect.Count; for (int i = 0; i < count; i++) { //if (dataAspect[i].DataType == stringType) expression = expression == null ? new ClassFilterExpression(dataAspect, i, FilterComparison.Like, filter) : expression.Or(i, FilterComparison.Like, filter); } return(expression); }
private ClassSelectResult <T> ExecuteSelect <T>(ClassSelect <T> select) { if (!string.IsNullOrEmpty(this.OrderBy)) { select.OrderBy(this.OrderByDirection, this.OrderBy); } select.Page(this.PageSize, this.PageOrdinal); ClassFilterExpression filter = null; foreach (BootstrapQueryHelperColumn col in this.columns) { if (!string.IsNullOrEmpty(col.Filter)) { filter = filter == null ? new ClassFilterExpression(select.Aspect, col.Name, FilterComparison.Like, "%" + col.Filter.Replace(" ", "%") + "%") : filter.And(col.Name, FilterComparison.Like, "%" + col.Filter.Replace(" ", "%") + "%"); } } if (filter != null) { select.And(filter); } ClassSelectResult <T> result = select.ToResult(); this.RecordCount = result.RecordCount; return(result); }
public virtual void AppendFilterExpression(StringBuilder builder, DataAspect aspect, ClassFilterExpression expression) { builder.Append("("); AppendFilterNodes(builder, aspect, expression.First); builder.Append(")"); }