Exemple #1
0
        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
                    }
                }
        }
Exemple #2
0
 public CsvParse(ICsvLineSplitter CsvLineplitter)
 {
     this._CsvLineplitter = CsvLineplitter;
 }
 public CsvLinesplitterTests(CsvLineSplitter CsvLinesplitter)
 {
     _CsvLinesplitter = CsvLinesplitter;
 }