Example #1
0
        private bool disposedValue = false; // To detect redundant calls

        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    LineEnumerator?.Dispose();
                    DataRowEnumerator?.Dispose();
                }

                // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below.
                // TODO: set large fields to null.

                disposedValue = true;
            }
        }
Example #2
0
        public IEnumerable <TPage> ToPagedData(int pageSize)
        {
            DataRowEnumerator = Rows().GetEnumerator();

            while (DataRowEnumerator.MoveNext())
            {
                Mapper.AddRowToPage(DataRowEnumerator.Current);
                if (Mapper.CurrentPageRowCount() >= pageSize)
                {
                    yield return(Mapper.CurrentPage);

                    Mapper.NextPage();
                }
            }

            if (Mapper.CurrentPageRowCount() > 0)
            {
                yield return(Mapper.CurrentPage);
            }
        }
Example #3
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="input"></param>
        public Mapper(object input)
            : this()
        {
            var reader = input as IDataReader;

            if (reader != null)
            {
                _reader = new DataReaderEnumerator(reader);
                Error   = _reader.Error;
                _index  = 1;
                return;
            }

            var no = input as NameObjectCollectionBase;

            if (no != null)
            {
                _nv    = new NameValueEnumerator(no);
                Error  = _nv.Error;
                _index = 2;
                return;
            }

            var row = (input as DataRowView)?.Row ?? input as DataRow;

            if (row?.Table != null)
            {
                _row   = new DataRowEnumerator(row);
                Error  = _row.Error;
                _index = 3;
                return;
            }

            var dataset = input as DataSet;

            if (dataset != null)
            {
                _dataSet = new DataSetEnumerator(dataset);
                Error    = _dataSet.Error;
                _index   = 4;
                return;
            }

            var dict = input as IDictionary;

            if (dict != null)
            {
                _enumerator = dict.GetEnumerator();
                _index      = 5;
                return;
            }

            var ee = (input as IEnumerable)?.GetEnumerator() ?? input as IEnumerator;

            if (ee != null)
            {
                _pair  = new PairEnumerator(ee);
                Error  = _pair.Error;
                _index = 6;
                return;
            }

            var ps = PublicPropertyCache.GetByType(input.GetType());

            if (ps.Length > 0)
            {
                _property = new PropertyEnumerator(input, ps);
                Error     = _property.Error;
                _index    = 7;
            }
        }