Example #1
0
        private static Query CombinePathQuery(Query q, string contextPath, PathUsageMode pathUsageMode)
        {
            if (q == null)
            {
                return(null);
            }
            var pathQuery = GetPathQuery(contextPath, pathUsageMode == PathUsageMode.InTreeAnd || pathUsageMode == PathUsageMode.InTreeOr);

            if (pathQuery == null)
            {
                return(q);
            }
            var occur = pathUsageMode == PathUsageMode.InFolderOr || pathUsageMode == PathUsageMode.InTreeOr
                ? BooleanClause.Occur.SHOULD
                : BooleanClause.Occur.MUST;
            var bq = new BooleanQuery();

            bq.Add(new BooleanClause(q, occur));
            bq.Add(new BooleanClause(pathQuery, occur));

            return(bq);
        }
Example #2
0
        private static SnQueryPredicate CombinePathPredicate(SnQueryPredicate predicate, string contextPath, PathUsageMode pathUsageMode)
        {
            if (predicate == null)
            {
                return(null);
            }

            var pathQuery = GetPathPredicate(contextPath, pathUsageMode == PathUsageMode.InTreeAnd || pathUsageMode == PathUsageMode.InTreeOr);

            if (pathQuery == null)
            {
                return(predicate);
            }

            var occur = pathUsageMode == PathUsageMode.InFolderOr || pathUsageMode == PathUsageMode.InTreeOr
                ? Occurence.Should
                : Occurence.Must;

            return(new LogicalPredicate(new[]
                                        { new LogicalClause(predicate, occur), new LogicalClause(pathQuery, occur) }));
        }