private static List <IReport> getReportGenerators(Options options, ISystemIO systemIO) { var reportGenerators = new List <IReport>(); foreach (var format in options.OutputFormat) { string outputFilename = "GitCommitsAnalysisReport"; if (!string.IsNullOrEmpty(options.ReportFilename)) { outputFilename = systemIO.GetPathWitoutExtension(options.ReportFilename); } var filename = $"{options.OutputFolder}\\{outputFilename}"; if (format == OutputFormat.Text) { reportGenerators.Add(new TextFileReport(systemIO, filename, options)); } if (format == OutputFormat.Markdown) { reportGenerators.Add(new MarkdownReport(systemIO, filename, options)); } if (format == OutputFormat.Json) { reportGenerators.Add(new JsonReport(systemIO, filename, options)); } if (format == OutputFormat.HTML) { reportGenerators.Add(new HTMLReport(systemIO, filename, options)); } if (format == OutputFormat.Excel) { reportGenerators.Add(new ExcelReport(systemIO, filename, options)); } } return(reportGenerators); }