Beispiel #1
0
        public static bool BuildMultiTermQuery(DtColumn dtColumn, out QueryCondition result,
                                               DbColumnMetadata dbColumn)
        {
            var terms = dtColumn.Search.Value.Split(" ",
                                                    StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries);
            var queryStrL = new List <string>();

            if (terms.Length == 0)
            {
                // result = null;
                result = new QueryCondition();
                return(false);
            }

            if (terms.Length > 7)
            {
                terms = new[] { dtColumn.Search.Value.Trim() };
            }

            for (var index = 0; index < terms.Length; index++)
            {
                var format = dbColumn.DbFuncFormat;
                var qCond  =
                    BuildCondition(dbColumn.DbColumn, terms[index], format, paramName: "param" + index,
                                   objectName: string.IsNullOrEmpty(format) ? "(string)(object)x" : "x");
                queryStrL.Add(qCond.Query);
            }

            var qStrFinal = string.Join(" && ", queryStrL);
            var qParam    = DummyDynamicQueryParams.Create(terms.Cast <object>().ToList());

            result = new QueryCondition(qStrFinal, qParam);
            return(true);
        }
Beispiel #2
0
 protected abstract QueryCondition BuildFilter(DtColumn col);
Beispiel #3
0
 protected abstract DbColumnMetadata GetDbColumn(DtColumn column);
Beispiel #4
0
 protected abstract bool IsServerSideSortable(DtColumn column);
Beispiel #5
0
 protected abstract bool IsGlobalServerSideFilterable(DtColumn column);