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
        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>();
        }