Example #1
0
        Maybe <QueryPlan> IProjectContextQueryPlanBuilder.BuildProjectContextPlan(IEnumerable <int> projectIds, bool includeNoProject, DocumentIndexTypeToken projectIndexTypeToken)
        {
            var queryBuf = new List <string>();

            if (projectIds != null)
            {
                queryBuf.AddRange(projectIds.Select(projectId => _indexDataFactory.CreateProjectData(projectId)));
            }
            if (includeNoProject)
            {
                queryBuf.Add(_indexDataFactory.CreateProjectData(null));
            }
            if (!queryBuf.Any())
            {
                return(Maybe.Nothing);
            }
            string         query = String.Join(" ", queryBuf.ToArray());
            IDocumentIndex projectContextIndex = _documentIndexProvider.GetOrCreateDocumentIndex(_pluginContext, projectIndexTypeToken);

            return(projectContextIndex.BuildExecutionPlan(new ParsedQuery(words: query), _profile.Initialized));
        }