/// <summary> /// Write a body to a file. /// </summary> /// <param name="file">Path to CSV file.</param> /// <param name="body">CSV file body to write.</param> /// <param name="existingHasHeader">True the existing CSV file has a header; otherwise does not have a header.</param> /// <exception cref="T:System.ArgumentNullException"><paramref name="body" /> is null.</exception> public void WriteBody(string file, CsvFileBody body, bool existingHasHeader = true) { if (body == null) { throw new ArgumentNullException(nameof(body)); } if (!body.HasLines) { return; } CsvFileLine header = null; if (existingHasHeader) { header = ReadHeader(file); } using (var writer = new StreamWriter(file)) { if (header != null) { writer.WriteLine(header); } foreach (var line in body.Lines) { writer.WriteLine(line.Line); } } }
/// <summary> /// Reads the entire file into a <see cref="CsvFile"/> object. /// </summary> /// <param name="file">Path to CSV file.</param> /// <param name="options">File reading options.</param> /// <returns><see cref="ByteDev.Csv.CsvFile"/> object.</returns> /// <exception cref="T:System.ArgumentNullException"><paramref name="options" /> is null.</exception> public CsvFile ReadFile(string file, CsvFileReaderOptions options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } var header = options.HasHeader ? ReadHeader(file) : null; var body = new CsvFileBody { Lines = ReadBody(file, options) }; return(new CsvFile(header, body)); }
private static void AssertBodySecondLine(CsvFileBody body) { Assert.That(body.Lines.Second().Line, Is.EqualTo(Line2.Line)); }
private static void AssertBodyFirstLine(CsvFileBody body) { Assert.That(body.Lines.First().Line, Is.EqualTo(Line1.Line)); }
private void Act(CsvFileBody body) { _sut.WriteBody(_file, body); }
public void SetUp() { _sut = new CsvFileBody(); }