public Report GenerateProfessorReport(Person professor, TimeInterval interval) { _reportDataProvider.ReportDataProvidersContainer.SetProfessorModificator(professor, interval); return new Report(professor.FullName.ToString(), _reportTableResolver(typeof (Person)), _formulaProvider, _reportDataProvider); }
private void SaveReport(ReportView.CreateReport viewModel, CreateReport view) { // TODO add validation try { var timeInterval = new TimeInterval(viewModel.StartDate, viewModel.EndDate); var reportParameters = viewModel.ReportParameters; var filePath = viewModel.FilePath; if (reportParameters is ReportView.PersonReportParameters) { var personParameters = reportParameters as ReportView.PersonReportParameters; var persons = personParameters.ChoosenPersons; var reports = persons.Select(p => _reportGenerator.GenerateProfessorReport(p.Model, timeInterval)) .ToList(); var report = Report.Unify(reports); _excelService.ExportReport(filePath, report); } else if (reportParameters is ReportView.CathedraReportParameters) { var cathedraParameters = reportParameters as ReportView.CathedraReportParameters; var cathedra = cathedraParameters.SelectedCathedra; var report = _reportGenerator.GenerateCathedraReport(cathedra, timeInterval); _excelService.ExportReport(filePath, report); } else { var report = _reportGenerator.GenerateFacultyReport(timeInterval); _excelService.ExportReport(filePath, report); } view.Close(); } catch (Exception ex) { MessageBox.Show("Ошибка при генерации отчёта. Проверьте введённые данные", "Ошибка"); } }
public Report GenerateFacultyReport(TimeInterval interval) { _reportDataProvider.ReportDataProvidersContainer.SetFacultyModificator(interval); return new Report("Факультет", _reportTableResolver(typeof (Cathedra)), _formulaProvider, _reportDataProvider); }
public Report GenerateCathedraReport(Cathedra cathedra, TimeInterval interval) { _reportDataProvider.ReportDataProvidersContainer.SetCathedraModificator(cathedra, interval); return new Report(cathedra.Name, _reportTableResolver(typeof (Cathedra)), _formulaProvider, _reportDataProvider); }