// "Files/table.txt" -data -weightSum -costSum -withIndex -withTotalVolume public static void Main(string[] args) { var argParser = new ArgParser(); argParser.ValidateArgs(args); var service = GetReportService(args, argParser); var report = service.CreateReport(); PrintReport(report); Console.WriteLine(""); Console.WriteLine("Press enter..."); Console.ReadLine(); }
private static IReportService GetReportService(string[] args, ArgParser argParser) { // статический фабричный метод var filename = argParser.ParseName(args); if (filename.EndsWith(".txt")) { return(new TxtReportService(args, argParser)); } if (filename.EndsWith(".csv")) { return(new CsvReportService(args, argParser)); } if (filename.EndsWith(".xlsx")) { return(new XlsxReportService(args, argParser)); } throw new NotSupportedException("this extension not supported"); }