Пример #1
0
        public IEnumerator <T> GetEnumerator()
        {
            var lastModifiedSupported = DataSet.SupportsEntityLastModified;

            // Build mapper
            mapper = DataSet.BuildMapper(reader.Header);

            while (true)
            {
                // Read CSV Record
                var record = reader.ReadRecord();

                // End of Stream?
                if (record == null)
                {
                    break;
                }

                // Create blank entity
                var entity = Activator.CreateInstance <T>();

                // Set entity context
                entity.Context = context;

                // Use mapper to fill entity
                for (int i = 0; i < record.Count; i++)
                {
                    mapper[i](entity, record[i]);
                }

                if (lastModifiedSupported &&                             // Last modified supported
                    entity.EntityLastModified != null &&
                    (entityLastModifiedMax == null ||                    // Last modified never set
                     entityLastModifiedMax < entity.EntityLastModified)) // Newer date
                {
                    entityLastModifiedMax = entity.EntityLastModified;
                }

                // Set entity as current item in enumerator
                yield return(entity);
            }
        }