public async ValueTask <bool> MoveNextAsync() { _prev?.Dispose(); // dispose the previous instance var isProjectInto = _query?.IsProjectInto ?? false; while (true) { var next = _enumerator.MoveNextAsync(); if (next.IsCompleted) { if (next.Result == false) { return(false); } } else if (await next.AsTask().WithCancellation(_token).ConfigureAwait(false) == false) { return(false); } _prev = _enumerator.Current; _query?.InvokeAfterStreamExecuted(_enumerator.Current); Current = CreateStreamResult(_enumerator.Current, isProjectInto); return(true); } }
internal override StreamResult <T> ResultCreator(StreamOperation.YieldStreamResults asyncEnumerator) { var current = asyncEnumerator.Current; _query?.InvokeAfterStreamExecuted(current); return(_parent.CreateStreamResult <T>(current, _fieldsToFetch, _query?.IsProjectInto ?? false)); }
internal override TimeSeriesStreamResult <T> ResultCreator(StreamOperation.YieldStreamResults asyncEnumerator) { _query?.InvokeAfterStreamExecuted(asyncEnumerator.Current); return(_parent.CreateTimeSeriesStreamResult <T>(asyncEnumerator)); }