private PscCsv ProcessCsv <T>(PscCsv pscCsv, ICsvLineSplitter CsvLineplitter /*Ilogger ?*/) { if (pscCsv.Data != null && pscCsv.Data.Lines != null) { //Set CSvHeader items from the first line - Add errors if (pscCsv.HasHeader) { pscCsv.Headers.CsvHeaderLine = pscCsv.Data.Lines.First().Line ?? ""; //run method/s to calcualte header properties from T } else /*TODO: ? */ } { //Set footer items from last line items, remove last line - add errors if (pscCsv.HasFooter) { /* Remove last line*/ if (pscCsv.Data.Lines.Last().Line == pscCsv.Data.Lines.First().Line) { //TODO : can this be set to represent no data? } else { //Anti-pattern warning - footer needs an interface, be extensible for future requirements var lastLine = pscCsv.Data.Lines.Last().Line; var footerElements = CsvLineplitter.CsvSplit( lastLine, pscCsv.IsQuoted, true, pscCsv.Separator, pscCsv.Quote); //Run footer get and set } } }
public CsvParse(ICsvLineSplitter CsvLineplitter) { this._CsvLineplitter = CsvLineplitter; }
public CsvLinesplitterTests(CsvLineSplitter CsvLinesplitter) { _CsvLinesplitter = CsvLinesplitter; }