コード例 #1
0
        public override async Task <bool> NextAsync(CancellationToken cancellationToken = default)
        {
            VerifyNotDisposed();

            if (Context.Command.IsCanceled)
            {
                return(false);
            }

            if (Processor is CountFunctionProcessor processor)
            {
                if (processor.Read)
                {
                    return(false);
                }

                processor.Read = true;
                _current       = new object[] { _requester.RequestCount() };
                return(true);
            }

            var flag = await _requester.NextAsync(cancellationToken);

            Processor.Current = _requester.Current;

            if (Context.DocumentFilters != null && Processor.Current != null)
            {
                foreach (var documentFilter in Context.DocumentFilters)
                {
                    documentFilter.Filter(TableName, Processor.Current);
                }
            }

            _current = flag ? Processor.Process() : null;

            return(flag);
        }