예제 #1
0
                public async ValueTask <bool> MoveNextAsync()
                {
                    _cancellationToken.ThrowIfCancellationRequested();

                    if (_jsonReader == null)
                    {
                        _query ??= _cosmosClientWrapper.CreateQuery(_containerId, _partitionKey, _cosmosSqlQuery);

                        if (!_query.HasMoreResults)
                        {
                            _current = null;
                            return(false);
                        }

                        _responseMessage = await _query.ReadNextAsync(_cancellationToken).ConfigureAwait(false);

                        _responseMessage.EnsureSuccessStatusCode();

                        _responseStream = _responseMessage.Content;
                        _reader         = new StreamReader(_responseStream);
                        _jsonReader     = CreateJsonReader(_reader);
                    }

                    if (TryReadJObject(_jsonReader, out var jObject))
                    {
                        _current = jObject;
                        return(true);
                    }

                    await ResetReadAsync().ConfigureAwait(false);

                    return(await MoveNextAsync().ConfigureAwait(false));
                }
예제 #2
0
                public bool MoveNext()
                {
                    if (_jsonReader == null)
                    {
                        _query ??= _cosmosClientWrapper.CreateQuery(_containerId, _partitionKey, _cosmosSqlQuery);

                        if (!_query.HasMoreResults)
                        {
                            _current = null;
                            return(false);
                        }

                        _responseMessage = _query.ReadNextAsync().GetAwaiter().GetResult();
                        _responseMessage.EnsureSuccessStatusCode();

                        _responseStream = _responseMessage.Content;
                        _reader         = new StreamReader(_responseStream);
                        _jsonReader     = CreateJsonReader(_reader);
                    }

                    if (TryReadJObject(_jsonReader, out var jObject))
                    {
                        _current = jObject;
                        return(true);
                    }

                    ResetRead();

                    return(MoveNext());
                }