/// <summary> /// Serialise a table /// </summary> public void SerialiseTable(Table table, RecordSerialiser serialiser) { using (var connection = OpenConnection()) { using (var command = new SqlCommand(table.Query, connection)) { command.CommandType = System.Data.CommandType.Text; using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { var record = new Record(); var allColumns = new List <string>(); foreach (var column in table.Columns) { getAllColumns(column, allColumns); } foreach (var column in allColumns) { record.Fields.Add(reader[column]); } //serialise the record object into the serialiser serialiser.SerialiseRecord(record); } } } } }
/// <summary> /// Serialise a single table /// </summary> static void SerialiseTable(Table table, IDatabase database, string outputFolder) { Console.WriteLine($"serialising table {table.Name} to file {table.Filename}"); using (var serialiser = new RecordSerialiser(Path.Combine(outputFolder, table.Filename))) { database.SerialiseTable(table, serialiser); } }