private RowSetCollectionData ProcessData(IDataReader reader) { var result = new RowSetCollectionData(); do { MetadataBuilder.Build(reader); var rowset = new RowSetData(); while (reader.Read()) { var row = new AtomCollectionData(); var columns = MetadataBuilder.Columns.OrderBy(c => c.Ordinal); foreach (var column in columns) { try { var atom = new AtomData(); atom.Name = column.Name; atom.Value = reader.GetValue(column.Ordinal); row.AddAtom(atom); } catch (Exception ex) { throw new Exception($"Error reading column {column.Ordinal} ({column.Name})", ex); } } rowset.AddRow(row); } result.AddRowSet(rowset); }while (reader.NextResult()); return(result); }
/// <summary> /// Add a new row set to the row set collection. /// </summary> /// <param name="rowset">The row set to add</param> public void AddRowSet(RowSetData rowset) { _rowsets.Add(rowset); }