public async Task <bool> MoveNextAsync(CancellationToken cancellationToken)
        {
            try
            {
                if (_open)
                {
                    _open = await _reader.ReadAsync(cancellationToken);

                    if (_open)
                    {
                        _item = _pocoMapper.GetItem();
                    }
                }
                else
                {
                    throw new PocoLoaderClosedException("The data reader is closed.");
                }

                return(_open);
            }
            catch (Exception ex)
            {
                throw new PocoException("The data reader could not be read, see inner exception for details.", ex);
            }
        }
Пример #2
0
        public async Task <List <T> > ToListAsync(DbDataReader reader, CancellationToken cancellationToken)
        {
            var pocoMapping = new PocoMapper <T>(reader);
            var data        = new List <T>();

            while (await reader.ReadAsync(cancellationToken))
            {
                data.Add(pocoMapping.GetItem());
            }

            return(data);
        }
Пример #3
0
        public async Task <List <T> > ToListAsync(DbDataReader reader, long rows, CancellationToken cancellationToken)
        {
            var pocoMapping = new PocoMapper <T>(reader);
            var data        = new List <T>();

            var row = 0;

            while (await reader.ReadAsync(cancellationToken) && (rows > row || rows < 0))
            {
                data.Add(pocoMapping.GetItem());
                row++;
            }

            return(data);
        }
        private async Task <bool> ReadNextAsync(CancellationToken cancellationToken)
        {
            if (_open)
            {
                _open = await _reader.ReadAsync(cancellationToken);

                if (_open)
                {
                    var item = _pocoMapper.GetItem();
                    _data.Add(item);
                    _maxRow++;
                }
            }
            return(_open);
        }