public List <T> Complete <T>()
        {
            _session.AssertNotDisposed(); // ensure that the user didn't do an async query then closed the session early
            var queryResult = _currentQueryResults.CreateSnapshot();

            queryResult.Results.BlittableValidation();

            if (DisableEntitiesTracking == false)
            {
                _session.RegisterIncludes(queryResult.Includes);
            }

            var list = new List <T>();

            foreach (BlittableJsonReaderObject document in queryResult.Results)
            {
                var metadata = document.GetMetadata();

                metadata.TryGetId(out var id);

                list.Add(Deserialize <T>(id, document, metadata, _fieldsToFetch, DisableEntitiesTracking, _session));
            }

            if (DisableEntitiesTracking == false)
            {
                _session.RegisterMissingIncludes(queryResult.Results, queryResult.Includes, queryResult.IncludedPaths);
            }

            return(list);
        }
Exemple #2
0
        private void CompleteInternal <T>(QueryResult queryResult, Action <int, T> addToResult)
        {
            queryResult.Results.BlittableValidation();

            if (NoTracking == false)
            {
                _session.RegisterIncludes(queryResult.Includes);
            }

            for (int i = 0; i < queryResult.Results.Length; i++)
            {
                var document = (BlittableJsonReaderObject)queryResult.Results[i];
                var metadata = document.GetMetadata();

                metadata.TryGetId(out var id);

                addToResult(i, Deserialize <T>(id, document, metadata, _fieldsToFetch, NoTracking, _session));
            }

            if (NoTracking == false)
            {
                _session.RegisterMissingIncludes(queryResult.Results, queryResult.Includes, queryResult.IncludedPaths);
                if (queryResult.CounterIncludes != null)
                {
                    _session.RegisterCounters(
                        queryResult.CounterIncludes,
                        queryResult.IncludedCounterNames);
                }
            }
        }
Exemple #3
0
        public List <T> Complete <T>()
        {
            var queryResult = _currentQueryResults.CreateSnapshot();

            if (DisableEntitiesTracking == false)
            {
                _session.RegisterIncludes(queryResult.Includes);
            }

            var list = new List <T>();

            foreach (BlittableJsonReaderObject document in queryResult.Results)
            {
                var metadata = document.GetMetadata();

                metadata.TryGetId(out var id);

                list.Add(Deserialize <T>(id, document, metadata, _projectionFields, DisableEntitiesTracking, _session));
            }

            if (DisableEntitiesTracking == false)
            {
                _session.RegisterMissingIncludes(queryResult.Results, queryResult.Includes, queryResult.IncludedPaths);
            }

            return(list);
        }
Exemple #4
0
        private void CompleteInternal <T>(QueryResult queryResult, Action <int, T> addToResult)
        {
            queryResult.Results.BlittableValidation();

            if (NoTracking == false)
            {
                _session.RegisterIncludes(queryResult.Includes);
            }

            for (int i = 0; i < queryResult.Results.Length; i++)
            {
                var document = (BlittableJsonReaderObject)queryResult.Results[i];
                BlittableJsonReaderObject metadata;

                try
                {
                    metadata = document.GetMetadata();
                }
                catch (InvalidOperationException)
                {
                    if (document.Count != _facetResultProperties.Length)
                    {
                        throw;
                    }

                    foreach (var prop in _facetResultProperties)
                    {
                        if (document.TryGetMember(prop.Name, out _) == false)
                        {
                            throw;
                        }
                    }

                    throw new InvalidOperationException("Raw query with aggregation by facet should be called by " +
                                                        $"{nameof(IRawDocumentQuery<T>.ExecuteAggregation)} or {nameof(IAsyncRawDocumentQuery<T>.ExecuteAggregationAsync)} method.");
                }

                metadata.TryGetId(out var id);

                addToResult(i, Deserialize <T>(id, document, metadata, _fieldsToFetch, NoTracking, _session, _isProjectInto));
            }

            if (NoTracking == false)
            {
                _session.RegisterMissingIncludes(queryResult.Results, queryResult.Includes, queryResult.IncludedPaths);
                if (queryResult.CounterIncludes != null)
                {
                    _session.RegisterCounters(
                        queryResult.CounterIncludes,
                        queryResult.IncludedCounterNames);
                }
            }
        }
        private Dictionary <string, FacetResult> ProcessResults(QueryResult queryResult)
        {
            InvokeAfterQueryExecuted(queryResult);

            var results = new Dictionary <string, FacetResult>();

            foreach (BlittableJsonReaderObject result in queryResult.Results)
            {
                var facetResult = DocumentConventions.Default.Serialization.DefaultConverter.FromBlittable <FacetResult>(result, "facet/result");
                results[facetResult.Name] = facetResult;
            }
            _session.RegisterIncludes(queryResult.Includes);

            QueryOperation.EnsureIsAcceptable(queryResult, _query.WaitForNonStaleResults, _duration, _session);

            return(results);
        }
        public List <T> Complete <T>()
        {
            _session.RegisterIncludes(_result.Includes);

            var list = new List <T>();

            foreach (BlittableJsonReaderObject document in _result.Results)
            {
                var metadata = document.GetMetadata();

                metadata.TryGetId(out var id);

                list.Add(QueryOperation.Deserialize <T>(id, document, metadata, projectionFields: null, disableEntitiesTracking: false, session: _session));
            }

            _session.RegisterMissingIncludes(_result.Results, _result.Includes, _query.Includes);

            return(list);
        }
Exemple #7
0
        public void SetResult(GetDocumentResult result)
        {
            if (result == null)
            {
                return;
            }

            _session.RegisterIncludes(result.Includes);

            foreach (BlittableJsonReaderObject document in result.Results)
            {
                if (document == null)
                {
                    continue;
                }

                var newDocumentInfo = DocumentInfo.GetNewDocumentInfo(document);
                _session.DocumentsById.Add(newDocumentInfo);
            }

            _session.RegisterMissingIncludes(result.Results, result.Includes, _includes);
        }