public void Test_QueryHandlerAnyOf()
        {
            var list = ContentFactory.Default.CreateFrom(new[] { "123", "456" });

            var a = (list as ContentList).ToArray();

            Assert.IsInstanceOfType(a[0], typeof(ContentText));

            Assert.IsInstanceOfType(a[1], typeof(ContentText));

            var line = new SearchQuery.Line(ContentPath.Parse("$.Number.Value"), SearchQuery.Op.AnyOf, list);

            //var expr = QueryConversionHelper.BuildCriteriaExpr(line);
        }
Exemple #2
0
        static string ResolveFilterLine(Context ctx, SearchQuery.Line line)
        {
            var pathId = ctx.ResolvePath(line.Field.ToString());

            string op = null;

            switch (line.Comparison)
            {
            case Op.AnyOf:
                op = " IN ";
                break;

            case Op.NotIn:
                op = " NOT IN ";
                break;

            case Op.Equals:
                op = line.Value is ContentNull? " IS ": "=";
                break;

            case Op.NotEquals:
                op = line.Value is ContentNull? " IS NOT ": "<>";
                break;

            case Op.GreaterThan:
                op = ">";
                break;

            case Op.LessThan:
                op = "<";
                break;

            case Op.GreaterThanOrEquals:
                op = ">=";
                break;

            case Op.LessThanOrEquals:
                op = "<=";
                break;
            }
            return($"SELECT DocumentId FROM {ctx.TokenTable} WITH (NOLOCK) WHERE ([{nameof(DbDocToken.ValueAsAny)}]{op}{FormatValue(line.Value)} AND [PathId]={pathId})");
        }