public void GenerateReport(Student student) { using (var studentGenerateDialog = new GenerateStudentReportDialog()) { var result = studentGenerateDialog.ShowDialog(); if (result == DialogResult.OK) { var startDate = studentGenerateDialog.GetStartDate(); var endDate = studentGenerateDialog.GetEndDate(); using (var reportGenerator = CreateGenerator(studentGenerateDialog)) { reportGenerator.GenerateReport(student, startDate, endDate); } } } }
public StudentReportGenerator CreateGenerator(GenerateStudentReportDialog dialog) { if (dialog.PdfSelected) { var filePath = dialog.GetPath(); var reportGenerator = StudentReportGenerator.CreatePdfGenerator(filePath); return(reportGenerator); } if (dialog.MongoDbSelected) { var reportGenerator = StudentReportGenerator.CreateMongoDbGenerator(); return(reportGenerator); } throw new InvalidOperationException(); }