public void Test1() { Type type = null; var config = new CsvConfiguration(CultureInfo.InvariantCulture) { ShouldQuote = args => { type = args.FieldType; return(ConfigurationFunctions.ShouldQuote(args)); }, }; using (var writer = new StringWriter()) using (var csv = new CsvWriter(writer, config)) { csv.WriteField(string.Empty); Assert.AreEqual(typeof(string), type); csv.WriteField(1); Assert.AreEqual(typeof(int), type); csv.WriteField(string.Empty); Assert.AreEqual(typeof(string), type); } }
private async Task <Task> DumpOutputFileAsync() { using (var writer = new StreamWriter(CommandLineOptions.Output)) using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture)) { csv.Configuration.HasHeaderRecord = false; csv.Configuration.Delimiter = ";"; csv.Configuration.ShouldQuote = (field, context) => { var index = context.Record.Count; var type = ((PropertyInfo)context.WriterConfiguration.Maps.Find <CsvOutput>().MemberMaps[index].Data.Member).PropertyType; if (type == typeof(string)) { return(true); } return(ConfigurationFunctions.ShouldQuote(field, context)); }; await csv.WriteRecordsAsync(CsvOutput); await writer.FlushAsync(); } return(Task.CompletedTask); }
public void Test1() { var data = new List <(int row, int column, string field)>(); var config = new CsvConfiguration(CultureInfo.InvariantCulture) { ShouldQuote = args => { data.Add((args.Row.Row, args.Row.Index, args.Field)); return(ConfigurationFunctions.ShouldQuote(args)); }, }; using (var writer = new StringWriter()) using (var csv = new CsvWriter(writer, config)) { csv.WriteField("Id"); csv.WriteField("Name"); csv.NextRecord(); csv.WriteField("1"); csv.WriteField("one"); csv.NextRecord(); csv.Flush(); } Assert.Equal(4, data.Count); Assert.Equal(1, data[0].row); Assert.Equal(0, data[0].column); Assert.Equal("Id", data[0].field); Assert.Equal(1, data[1].row); Assert.Equal(1, data[1].column); Assert.Equal("Name", data[1].field); Assert.Equal(2, data[2].row); Assert.Equal(0, data[2].column); Assert.Equal("1", data[2].field); Assert.Equal(2, data[3].row); Assert.Equal(1, data[3].column); Assert.Equal("one", data[3].field); }
public void WriteRecords_ShouldQuote_HasCorrectFieldType() { var records = new List <Foo> { new Foo { Id = 1, Name = "one" }, }; var config = new CsvConfiguration(CultureInfo.InvariantCulture) { ShouldQuote = args => { if (args.Row.Row > 1) { switch (args.Row.Index) { case 0: Assert.Equal(typeof(int), args.FieldType); break; case 1: Assert.Equal(typeof(string), args.FieldType); break; } } return(ConfigurationFunctions.ShouldQuote(args)); }, }; using (var writer = new StringWriter()) using (var csv = new CsvWriter(writer, config)) { csv.WriteRecords(records); } }