#pragma warning disable UseAsyncSuffix // Must match interface
        /// <inheritdoc/>
        public async Task <bool> MoveNext(CancellationToken cancellationToken)
#pragma warning restore UseAsyncSuffix // Must match interface
        {
            var hasMoreLocalItems = _initialized &&
                                    _pagedEnumerator.CurrentPage.Items.Any() &&
                                    _localPageIndex < _pagedEnumerator.CurrentPage.Items.Count();

            if (hasMoreLocalItems)
            {
                _localPageIndex++;
                return(true);
            }

            var movedNext = await _pagedEnumerator.MoveNextAsync(cancellationToken).ConfigureAwait(false);

            if (!movedNext)
            {
                return(false);
            }

            _initialized    = true;
            _localPageIndex = 0;

            return(_pagedEnumerator.CurrentPage.Items.Any());
        }
예제 #2
0
        /// <inheritdoc/>
        public async ValueTask <bool> MoveNextAsync()
        {
            var hasMoreLocalItems = _initialized &&
                                    _pagedEnumerator.CurrentPage.Items.Any() &&
                                    _localPageIndex < _pagedEnumerator.CurrentPage.Items.Count();

            if (hasMoreLocalItems)
            {
                _localPageIndex++;
                return(true);
            }

            var movedNext = await _pagedEnumerator.MoveNextAsync().ConfigureAwait(false);

            if (!movedNext)
            {
                return(false);
            }

            _initialized    = true;
            _localPageIndex = 0;

            return(_pagedEnumerator.CurrentPage.Items.Any());
        }