Ejemplo n.º 1
0
        /// <inheritdoc />
        public Lazy <FacetedQueryResult> GetFacetsLazy(List <Facet> facets, int facetStart, int?facetPageSize)
        {
            var q     = GetIndexQuery();
            var query = FacetQuery.Create(q, null, facets, facetStart, facetPageSize, Conventions);

            var lazyFacetsOperation = new LazyFacetsOperation(Conventions, query);

            return(((DocumentSession)TheSession).AddLazyOperation(lazyFacetsOperation, (Action <FacetedQueryResult>)null));
        }
Ejemplo n.º 2
0
        /// <inheritdoc />
        public Lazy <Task <FacetedQueryResult> > GetFacetsLazyAsync(List <Facet> facets, int facetStart, int?facetPageSize, CancellationToken token = default(CancellationToken))
        {
            var q     = GetIndexQuery();
            var query = FacetQuery.Create(q, null, facets, facetStart, facetPageSize, Conventions);

            var lazyFacetsOperation = new LazyFacetsOperation(Conventions, query);

            return(((AsyncDocumentSession)TheSession).AddLazyOperation <FacetedQueryResult>(lazyFacetsOperation, null, token));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Lazily Query the facets results for this query using the specified facet document with the given start and pageSize
        /// </summary>
        /// <param name="facetSetupDoc">Name of the FacetSetup document</param>
        /// <param name="start">Start index for paging</param>
        /// <param name="pageSize">Paging PageSize. If set, overrides Facet.MaxResults</param>
        public static Lazy <FacetResults> ToFacetsLazy <T>(this IDocumentQuery <T> query, string facetSetupDoc, int start = 0, int?pageSize = null)
        {
            var indexQuery    = query.GetIndexQuery(isAsync: false);
            var documentQuery = ((DocumentQuery <T>)query);

            var lazyOperation = new LazyFacetsOperation(documentQuery.IndexQueried, facetSetupDoc, indexQuery, start, pageSize);

            var documentSession = ((DocumentSession)documentQuery.Session);

            return(documentSession.AddLazyOperation <FacetResults>(lazyOperation, null));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Lazily Query the facets results for this query using the specified facet document with the given start and pageSize
        /// </summary>
        /// <param name="facetSetupDoc">Name of the FacetSetup document</param>
        /// <param name="start">Start index for paging</param>
        /// <param name="pageSize">Paging PageSize. If set, overrides Facet.MaxResults</param>
        public static Lazy <FacetResults> ToFacetsLazy <T>(this IQueryable <T> queryable, string facetSetupDoc, int start = 0, int?pageSize = null)
        {
            var ravenQueryInspector = ((IRavenQueryInspector)queryable);
            var query = ravenQueryInspector.GetIndexQuery(isAsync: false);

            var lazyOperation = new LazyFacetsOperation(ravenQueryInspector.IndexQueried, facetSetupDoc, query, start, pageSize);

            var documentSession = ((DocumentSession)ravenQueryInspector.Session);

            return(documentSession.AddLazyOperation <FacetResults>(lazyOperation, null));
        }
Ejemplo n.º 5
0
        public static Lazy <IDictionary <string, IEnumerable <FacetValue> > > ToFacetsLazy <T>(this IQueryable <T> queryable, string facetDoc)
        {
            var ravenQueryInspector = ((IRavenQueryInspector)queryable);
            var query = ravenQueryInspector.ToString();

            var lazyOperation = new LazyFacetsOperation(ravenQueryInspector.IndexQueried, facetDoc, new IndexQuery {
                Query = query
            });

            var documentSession = ((DocumentSession)ravenQueryInspector.Session);

            return(documentSession.AddLazyOperation <IDictionary <string, IEnumerable <FacetValue> > >(lazyOperation, null));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Lazily Query the facets results for this query using the specified list of facets with the given start and pageSize
        /// </summary>
        /// <param name="facets">List of facets</param>
        /// <param name="start">Start index for paging</param>
        /// <param name="pageSize">Paging PageSize. If set, overrides Facet.MaxResults</param>
        public static Lazy <FacetResults> ToFacetsLazy <T>(this IDocumentQuery <T> query, IEnumerable <Facet> facets, int start = 0, int?pageSize = null)
        {
            var facetsList = facets.ToList();

            if (!facetsList.Any())
            {
                throw new ArgumentException("Facets must contain at least one entry", "facets");
            }

            var indexQuery    = query.GetIndexQuery(isAsync: false);
            var documentQuery = ((DocumentQuery <T>)query);

            var lazyOperation = new LazyFacetsOperation(documentQuery.IndexQueried, facetsList, indexQuery, start, pageSize);

            var documentSession = ((DocumentSession)documentQuery.Session);

            return(documentSession.AddLazyOperation <FacetResults>(lazyOperation, null));
        }