/// <summary> /// Get the next set of results from the cosmos service /// </summary> /// <param name="cancellationToken">(Optional) <see cref="CancellationToken"/> representing request cancellation.</param> /// <returns>A query response from cosmos service</returns> public override Task <CosmosResponseMessage> FetchNextSetAsync(CancellationToken cancellationToken = default(CancellationToken)) { return(this.nextResultSetDelegate(this.MaxItemCount, this.continuationToken, this.queryOptions, this.state, cancellationToken) .ContinueWith(task => { CosmosResponseMessage response = task.Result; this.continuationToken = response.Headers.ETag; this.HasMoreResults = ChangeFeedResultSetStreamIterator.GetHasMoreResults(this.continuationToken, response.StatusCode); return response; }, cancellationToken)); }
internal static CosmosQueryResponse <TInput> CreateCosmosQueryFeedResponse <TInput>( CosmosResponseMessage cosmosResponseMessage, CosmosJsonSerializer jsonSerializer) { using (cosmosResponseMessage) { // Throw the exception if the query failed: EnsureSuccessStatusCode only // validates 200-299. 304 is valid for Changefeed so do not throw on that. if (cosmosResponseMessage.StatusCode != HttpStatusCode.NotModified) { cosmosResponseMessage.EnsureSuccessStatusCode(); } string continuationToken = cosmosResponseMessage.Headers.ETag; bool hasMoreResults = ChangeFeedResultSetStreamIterator.GetHasMoreResults(continuationToken, cosmosResponseMessage.StatusCode); return(CosmosQueryResponse <TInput> .CreateResponse <TInput>( stream : cosmosResponseMessage.Content, jsonSerializer : jsonSerializer, continuationToken : continuationToken, hasMoreResults : hasMoreResults)); } }