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); }
public ClassSelect <T> Search(string filter, params string[] fields) { if (string.IsNullOrEmpty(filter)) { return(this); } else { ClassFilterExpression expression = new ClassFilterExpression(this._Aspect, fields[0], FilterComparison.Like, filter); for (int i = 1; i < fields.Length; i++) { expression.Or(fields[i], FilterComparison.Like, filter); } if (this._WhereFirst == null) { return(Where(expression)); } else { return(And(expression)); } } }