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); }
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})"); }