Ejemplo n.º 1
0
        public void HandleResponses(GetResponse[] responses, ShardStrategy shardStrategy)
        {
            var count = responses.Count(x => x.Status == 404);

            if (count != 0)
            {
                throw new InvalidOperationException("There is no index named: " + queryOperation.IndexName + " in " + count + " shards");
            }

            var list = responses
                       .Select(response => SerializationHelper.ToQueryResult((RavenJObject)response.Result, response.GetEtagHeader()))
                       .ToList();

            var queryResult = shardStrategy.MergeQueryResults(queryOperation.IndexQuery, list);

            RequiresRetry = queryOperation.IsAcceptable(queryResult) == false;
            if (RequiresRetry)
            {
                return;
            }

            if (afterQueryExecuted != null)
            {
                afterQueryExecuted(queryResult);
            }
            Result = queryOperation.Complete <T>();
        }
Ejemplo n.º 2
0
        private void HandleResponse(QueryResult queryResult, TimeSpan duration)
        {
            _queryOperation.EnsureIsAcceptableAndSaveResult(queryResult, duration);

            _afterQueryExecuted?.Invoke(queryResult);
            Result      = _queryOperation.Complete <T>();
            QueryResult = queryResult;
        }
Ejemplo n.º 3
0
        private async Task <IEnumerable <T> > ExecuteQueryOperation(int take, CancellationToken token)
        {
            if (PageSize.HasValue == false || PageSize > take)
            {
                Take(take);
            }

            await InitAsync(token).ConfigureAwait(false);

            return(QueryOperation.Complete <T>());
        }
Ejemplo n.º 4
0
        private IEnumerable <T> ExecuteQueryOperation(int take)
        {
            if (PageSize.HasValue == false || PageSize > take)
            {
                Take(take);
            }

            InitSync();

            return(QueryOperation.Complete <T>());
        }
Ejemplo n.º 5
0
        public void HandleResponse(GetResponse response)
        {
            if (response.Status == 404)
            {
                throw new InvalidOperationException("There is no index named: " + queryOperation.IndexName);
            }
            var json        = RavenJObject.Parse(response.Result);
            var queryResult = SerializationHelper.ToQueryResult(json, response.Headers["ETag"]);

            RequiresRetry = queryOperation.IsAcceptable(queryResult) == false;
            if (RequiresRetry)
            {
                return;
            }

            if (afterQueryExecuted != null)
            {
                afterQueryExecuted(queryResult);
            }
            Result = queryOperation.Complete <T>();
        }
Ejemplo n.º 6
0
        private static Task <Tuple <QueryResult, List <T> > > ProcessEnumerator(QueryOperation currentQueryOperation)
        {
            var list = currentQueryOperation.Complete <T>();

            return(Task.FromResult(Tuple.Create(currentQueryOperation.CurrentQueryResults, list)));
        }
Ejemplo n.º 7
0
 /// <inheritdoc />
 public IEnumerator <T> GetEnumerator()
 {
     InitSync();
     return(QueryOperation.Complete <T>().GetEnumerator());
 }