Beispiel #1
0
        public IEnumerator <T> GetEnumerator()
        {
            CheckDisposed();
            ChoFixedLengthRecordReader rr = new ChoFixedLengthRecordReader(typeof(T), Configuration);

            rr.Reader                     = this;
            rr.TraceSwitch                = TraceSwitch;
            rr.RowsLoaded                += NotifyRowsLoaded;
            rr.MembersDiscovered         += MembersDiscovered;
            rr.RecordFieldTypeAssessment += RecordFieldTypeAssessment;
            var e = _lines != null?rr.AsEnumerable(_lines).GetEnumerator() : rr.AsEnumerable(_textReader.Value).GetEnumerator();

            return(ChoEnumeratorWrapper.BuildEnumerable <T>(() => {
                ++_recordNumber;
                return e.MoveNext();
            }, () => (T)ChoConvert.ChangeType <ChoRecordFieldAttribute>(e.Current, typeof(T)), () => Dispose()).GetEnumerator());
        }
Beispiel #2
0
        public IEnumerator <T> GetEnumerator()
        {
            ChoParquetRecordReader rr = new ChoParquetRecordReader(typeof(T), Configuration);

            if (_sr != null)
            {
                _parquetReader = Create(_sr);
            }

            rr.Reader                     = this;
            rr.TraceSwitch                = TraceSwitch;
            rr.RowsLoaded                += NotifyRowsLoaded;
            rr.MembersDiscovered         += MembersDiscovered;
            rr.RecordFieldTypeAssessment += RecordFieldTypeAssessment;
            var e = rr.AsEnumerable(_parquetReader).GetEnumerator();

            return(ChoEnumeratorWrapper.BuildEnumerable <T>(() => e.MoveNext(), () => (T)ChoConvert.ChangeType <ChoRecordFieldAttribute>(e.Current, typeof(T)), () => Dispose()).GetEnumerator());
        }
Beispiel #3
0
        public IEnumerator <T> GetEnumerator()
        {
            CheckDisposed();
            if (_jObjects == null)
            {
                ChoJSONRecordReader rr = new ChoJSONRecordReader(typeof(T), Configuration);
                if (_textReader != null)
                {
                    _JSONReader = Create(_textReader.Value);
                }

                rr.Reader                     = this;
                rr.TraceSwitch                = TraceSwitch;
                rr.RowsLoaded                += NotifyRowsLoaded;
                rr.MembersDiscovered         += MembersDiscovered;
                rr.RecordFieldTypeAssessment += RecordFieldTypeAssessment;
                var e = rr.AsEnumerable(_JSONReader).GetEnumerator();
                return(ChoEnumeratorWrapper.BuildEnumerable <T>(() => {
                    ++_recordNumber;
                    return e.MoveNext();
                }, () => (T)ChoConvert.ChangeType <ChoRecordFieldAttribute>(e.Current, typeof(T)), () => Dispose()).GetEnumerator());
            }
            else
            {
                ChoJSONRecordReader rr = new ChoJSONRecordReader(typeof(T), Configuration);

                rr.Reader                     = this;
                rr.TraceSwitch                = TraceSwitch;
                rr.RowsLoaded                += NotifyRowsLoaded;
                rr.MembersDiscovered         += MembersDiscovered;
                rr.RecordFieldTypeAssessment += RecordFieldTypeAssessment;
                var e = rr.AsEnumerable(_jObjects).GetEnumerator();
                return(ChoEnumeratorWrapper.BuildEnumerable <T>(() =>
                {
                    ++_recordNumber;
                    return e.MoveNext();
                }, () => (T)ChoConvert.ChangeType <ChoRecordFieldAttribute>(e.Current, typeof(T)), () => Dispose()).GetEnumerator());
            }
        }
Beispiel #4
0
        public IEnumerator <T> GetEnumerator()
        {
            ChoAvroRecordReader rr = new ChoAvroRecordReader(typeof(T), Configuration);

            rr.Reader                     = this;
            rr.TraceSwitch                = TraceSwitch;
            rr.RowsLoaded                += NotifyRowsLoaded;
            rr.MembersDiscovered         += MembersDiscovered;
            rr.RecordFieldTypeAssessment += RecordFieldTypeAssessment;

            if (typeof(T) == typeof(object))
            {
                IEnumerator <object> e = _avroReader != null?rr.AsEnumerable <Dictionary <string, object> >(_avroReader).GetEnumerator() : rr.AsEnumerable <Dictionary <string, object> >(_sr).GetEnumerator();

                return(ChoEnumeratorWrapper.BuildEnumerable <T>(() => e.MoveNext(), () => (T)((object)e.Current), () => Dispose()).GetEnumerator());
            }
            else
            {
                IEnumerator <object> e = _avroReader != null?rr.AsEnumerable <T>(_avroReader).GetEnumerator() : rr.AsEnumerable <T>(_sr).GetEnumerator();

                return(ChoEnumeratorWrapper.BuildEnumerable <T>(() => e.MoveNext(), () => (T)ChoConvert.ChangeType <ChoRecordFieldAttribute>(e.Current, typeof(T)), () => Dispose()).GetEnumerator());
            }
        }
 public static IEnumerable <IDataReader> AsEnumerable(this IDataReader source)
 {
     return(ChoEnumeratorWrapper.BuildEnumerable(source.Read, () => source));
 }
 public ChoChunkedEnumerable(ChoEnumeratorWrapper <T> wrapper, int chunkSize, int start)
 {
     this.wrapper   = wrapper;
     this.chunkSize = chunkSize;
     this.start     = start;
 }