public void BeginProcessing() { OnProgressChanged?.Invoke(0); //Read and load excel to json objects var reader = new OpenXmlLoader(spreadSheetFilePath); reader.LoadExcelDataToJsonFile(); OnProgressChanged?.Invoke(20); var pdf = new PdfGeneratorEngine(); pdf.GenerateSalarySlipsPdfs(); OnProgressChanged?.Invoke(50); var poster = new EmailPoster(); poster.OnProgressChanged += (d) => { var progress = 50 + d; OnProgressChanged?.Invoke(progress); }; poster.SendEmails(); OnProgressFinished?.Invoke(this, new SendEmailsFinishedEventArgs() { FailedEmails = poster.ErrorEmails, SuccessEmails = poster.SuccessEmails }); }
private BaseModule InitializeModule(BaseModule configuration) { BaseModule module = null; switch (configuration.GetType().Name) { // ADD MODULE CONSTRUCTORS HERE case "Database": module = new Database(SharedData, (Database)configuration); break; case "DataLoader": module = new DataLoader(SharedData, (DataLoader)configuration); break; case "XsltWriter": module = new XsltWriter(SharedData, (XsltWriter)configuration); break; case "ExcelWriter": module = new ExcelWriter(SharedData, (ExcelWriter)configuration); break; case "EmailPoster": module = new EmailPoster(SharedData, (EmailPoster)configuration); break; case "Printer": module = new Printer(SharedData, (Printer)configuration); break; case "LanCleaner": module = new LanCleaner(SharedData, (LanCleaner)configuration); break; case "LanPoster": module = new LanPoster(SharedData, (LanPoster)configuration); break; case "LanCollector": module = new LanCollector(SharedData, (LanCollector)configuration); break; case "XMLFileReader": module = new XMLFileReader(SharedData, (XMLFileReader)configuration); break; case "ExcelReader": module = new ExcelReader(SharedData, (ExcelReader)configuration); break; case "RestService": module = new RestService(SharedData, (RestService)configuration); break; default: throw new Exception("The configured module '" + configuration.Name + "' type '" + configuration.GetType().Name + "' is unknown."); } return(module); }