public static string DataTableToCsv(this DataTable table, GridSpec <IStringIndexer> spec) { var output = new StringBuilder(); output.AppendLine(ToCsvExtensionMethods.EnumerableStringToCsvRow(spec.ColumnNames)); var reader = table.CreateDataReader(); while (reader.Read()) { var line = String.Join(ToCsvExtensionMethods.CsvDelimiter, spec.Select(cs => ToCsvExtensionMethods.CsvEscape(cs.CalculateStringValue(AdaptReaderToIStringIndexer(reader))))); output.AppendLine(line); } reader.Close(); return(output.ToString()); }
public static DhtmlxGridJsonRow ToDhtmlxGridJsonRow <T>(this T thingToRead, int rowID, GridSpec <T> gridSpec) { var columnValues = gridSpec.Select(columnSpec => thingToRead.ToDhtmlxGridJsonCellData(columnSpec)).ToList(); return(new DhtmlxGridJsonRow(rowID, columnValues)); }