Summer.Batch.Extra.Ebcdic.EbcdicReader.NextRecord C# (CSharp) Method

NextRecord() public method

Returns the next record as a list of objects.
   
public NextRecord ( ) : List
return List
        public List<object> NextRecord()
        {
            List<object> result = new List<object>();
            if (_readRecords == 0 && _fileFormat.HeaderSize > 0)
            {
                _stream.Seek(_fileFormat.HeaderSize + _fileFormat.NewLineSize, SeekOrigin.Begin);
            }
            if (_hasRdw)
            {
                _stream.Seek(RdwSize, SeekOrigin.Current);
            }
            _readRecords++;
            try
            {
                var recordFormat = RetrieveRecordFormat(result);
                result.AddRange(ReadFields(recordFormat));
            }
            catch (EndOfFileException)
            {
                return null;
            }

            if (_fileFormat.NewLineSize > 0)
            {
                _stream.Seek(_fileFormat.NewLineSize, SeekOrigin.Current);
            }

            if (Logger.IsTraceEnabled)
            {
            //NOTE : WARNING - THIS MIGHT EXPOSE SENSITIVE INFORMATION TO THE VIEW -- 
            //PLEASE PROCEED WITH CAUTION WHEN SETTING LOG LEVEL TO DEBUG.
                Logger.Trace("Reading record #{0} ( | is field sep., [] are collection delimiters ) =\n {1}", _readRecords,
                    _fileFormat.DiscriminatorSize > 0
                        ? ObjectUtils.Dump(result.GetRange(1, result.Count - 1))
                        : ObjectUtils.Dump(result));
            }

            return result;
        }

Usage Example

Esempio n. 1
0
        public void EbcdicTestsTestReader()
        {
            FileFormat fileFormat = CopybookLoader.LoadCopybook(Copybook + "/Test.fileformat");
            using (BufferedStream inputStream = new BufferedStream(new MemoryStream(Bytes)))
            {
                EbcdicReader reader = new EbcdicReader(inputStream, fileFormat, false);
                List<object> record = reader.NextRecord();
                Assert.AreEqual(Objects.Length, record.ToArray().Length);
                Assert.AreEqual(Objects.GetType(), record.ToArray().GetType());

                //NOTE : CollectionAssert does not support nested collection handling ...
                int index = 0;
                foreach (var rec in record.ToArray())
                {
                    var array = rec as Array;
                    if (array != null)
                    {
                        CollectionAssert.AreEqual((Array)Objects[index], array);
                    }
                    else
                    {
                        Assert.AreEqual(Objects[index], rec);
                    }
                    index++;
                }
            }
        }
All Usage Examples Of Summer.Batch.Extra.Ebcdic.EbcdicReader::NextRecord