public static string ToTextAll <TRec>(IEnumerable <TRec> records, ChoJSONRecordConfiguration configuration = null, TraceSwitch traceSwitch = null, string jsonPath = null) { if (records == null) { return(null); } if (typeof(DataTable).IsAssignableFrom(typeof(TRec))) { StringBuilder json = new StringBuilder(); foreach (var dt in records.Take(1)) { using (var w = new ChoJSONWriter(json, configuration)) { w.Write(dt); } } return(json.ToString()); } else if (typeof(IDataReader).IsAssignableFrom(typeof(TRec))) { StringBuilder json = new StringBuilder(); foreach (var dt in records.Take(1)) { using (var w = new ChoJSONWriter(json, configuration)) { w.Write(dt); } } return(json.ToString()); } using (var stream = new MemoryStream()) using (var reader = new StreamReader(stream)) using (var writer = new StreamWriter(stream)) using (var parser = new ChoJSONWriter <TRec>(writer, configuration) { TraceSwitch = traceSwitch == null ? ChoETLFramework.TraceSwitch : traceSwitch }) { parser.Configuration.JSONPath = jsonPath; parser.Write(records); parser.Close(); writer.Flush(); stream.Position = 0; return(reader.ReadToEnd()); } }
public static string ToTextAll <TRec>(IEnumerable <TRec> records, ChoJSONRecordConfiguration configuration = null, TraceSwitch traceSwitch = null, string jsonPath = null) where TRec : class { using (var stream = new MemoryStream()) using (var reader = new StreamReader(stream)) using (var writer = new StreamWriter(stream)) using (var parser = new ChoJSONWriter <TRec>(writer, configuration) { TraceSwitch = traceSwitch == null ? ChoETLFramework.TraceSwitch : traceSwitch }) { parser.Configuration.JSONPath = jsonPath; parser.Write(records); parser.Close(); writer.Flush(); stream.Position = 0; return(reader.ReadToEnd()); } }