public void DoReport() { if (logger != null) { csvreader = logger.OutputWriter.GetReader(); } Dictionary <string, List <double> > plots = csvreader.Read(signals); chartindex = 0; if (NewChartData != null) { foreach (IPlotMultiple ipm in multplots) { NewChartData(ipm.Plot(plots)); } } foreach (string key in plots.Keys) { if (NewChartData != null) { foreach (IPlotSingle ips in singleplots) { ips.Title = key; NewChartData(ips.Plot(plots[key])); } } if (NewPrintReport != null) { foreach (IPrintReport ipr in prints) { NewPrintReport(ipr.Print(key, plots[key])); } } } }