Пример #1
0
        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);
        }
Пример #3
0
 public virtual void AppendFilterExpression(StringBuilder builder, DataAspect aspect, ClassFilterExpression expression)
 {
     builder.Append("(");
     AppendFilterNodes(builder, aspect, expression.First);
     builder.Append(")");
 }