public async Task <bool> MoveNext(CancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); if (_finished) { return(false); } CallSettings effectiveCallSettings = _parent._callSettings; if (cancellationToken != default(CancellationToken)) { effectiveCallSettings = effectiveCallSettings?.Clone() ?? new CallSettings(); effectiveCallSettings.CancellationToken = cancellationToken; } var response = await _parent._apiCall.Async(_request, effectiveCallSettings); _finished = !MoreResultsAvailable(response); ModifyRequest(_request, response); Current = response; return(true); }