public override void ExecuteResult(ControllerContext context) { string defaultExtension = Config.Report.Writers.GetWriterConfigurationByFormat(Config.Report.DefaultWriter).FileExtension; var response = context.HttpContext.Response; if (_writer == null) { var writerConfig = GetWriterFromExtension(context, defaultExtension); response.ContentType = writerConfig.ContentType; _writer = writerConfig.LoadWriter(); } else { response.ContentType = _contentType; } if (!string.IsNullOrEmpty(FileName)) { var extension = GetDownloadFileExtension(context.HttpContext.Request, defaultExtension); context.HttpContext.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}{1}", FileName, extension)); } _writer.WriteReport(_report, response.OutputStream); }
private void Export(TraceContext context, DataSet ds, IReportWriter writer, string filepath) { var report = new Report(ds.Tables[0].ToReportSource()); // Customize the Text Fields report.TextFields.Title = "SqlAuditor - Events Log"; report.TextFields.Footer = "Powered by SqlAuditor.\n" + @"http://github.com/iraklisk/SqlAuditor"; report.TextFields.Header = String.Format("Instance: {0}\nFrom: {1}\nTo: {2}\nReport Generated: {3}", context.Trace.Instance.DataSource, dtFrom.Value.ToShortDateString(), dtTo.Value.ToShortDateString(), DateTime.Now); report.RenderHints.Orientation = ReportOrientation.Landscape; report.RenderHints.BooleanCheckboxes = true; using (var stream = new FileStream(filepath, FileMode.Create)) { writer.WriteReport(report, stream); } }
protected override void Act(VerificationResult verificationResult) { try { if (verificationResult == null) { throw new ArgumentNullException(nameof(verificationResult)); } _reportWriter.WriteReport(verificationResult); } catch (Exception exception) { _log.Error( $"One or more errors occurred while saving to database: {JsonConvert.SerializeObject(verificationResult)}.", exception ); } }
public virtual void ProcessRequest(HttpContext context) { Context = context; string format = GetReportType(context); elementConfig = Config.Report.Writers[format]; context.Response.ContentType = elementConfig.ContentType; if (OfferDownload) { context.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}{1}", FileName, elementConfig.FileExtension)); } Report report = new Report(); report.Source = ReportSource; CustomizeReport(report); IReportWriter writer = elementConfig.LoadWriter(); writer.WriteReport(report, context.Response.OutputStream); }
/// <summary> /// Collect personnel file data and feed them to the ReportWriter. /// For PERSREP (settings.reportType == PERSREP), the filter is a name of a company. /// For ATTENDANCE, the filter is the name of a platoon. /// Respectively, only members of the company / platoon are included. /// </summary> /// <seealso cref="IReportWriter"/> /// <seealso cref="PersrepReportWriter"/> /// <seealso cref="AttendanceReportWriter"/> private bool GenerateReport() { Debug.Assert(conn != null, "Database connection was null in GenerateReport()"); Debug.Assert(personnelReader != null, "personnel reader not initialized in generateReport()"); reportReady = false; reportLoading = true; UpdateValidity(); if (timeFilterEnabledCheckbox.Checked) { settings.startOfReport = dataSelectionStartDate.Value; settings.endOfReport = dataSelectionEndDate.Value; } else { settings.startOfReport = DateTime.MinValue; settings.endOfReport = DateTime.MaxValue; } if (reportWriter != null) { reportWriter.CloseExcel(); reportWriter = null; } DestroyAllExcel(); if (!File.Exists(settings.reportTemplate)) { progressStatusLabel.Text = "Raporti põhi on puudu."; Debug.Print("Report template missing. {0}", settings.reportTemplate); reportReady = false; reportLoading = false; UpdateValidity(); return(false); } // Support J1 and J2 filters JFilter j1 = new JFilter(); j1.enabled = false; if (j1FilterEnabled.Checked) { int x; j1.enabled = true; if (j1Filter.Text != J_EMPTY_VALUE) { if (int.TryParse(j1Filter.Text, out x)) { j1.desiredValue = x; } else { MessageBox.Show("J1 parameetris on viga. Ei saanud teisendada numbriks. Jätan arvestamata.", "Viga raporti genereerimisel"); } } else { j1.desiredValue = null; Debug.Print("J1 must be empty"); } } JFilter j2 = new JFilter(); j2.enabled = false; if (j2FilterEnabled.Checked) { j2.enabled = true; int x; if (j2Filter.Text != J_EMPTY_VALUE) { if (int.TryParse(j2Filter.Text, out x)) { j2.desiredValue = x; } else { MessageBox.Show("J2 parameetris on viga. Ei saanud teisendada numbriks. Jätan arvestamata.", "Viga raporti genereerimisel"); } } else { Debug.Print("J2 must be empty"); j2.desiredValue = null; } } // Support Company filter if (companyFilterEnabled.Enabled && companyFilterEnabled.Checked && settings.companyFilter == null) { settings.companyFilter = companyFilter.Text; } // Support Platoon filter bool success = false; if (settings.reportType == ReportType.PERSREP) { progressStatusLabel.Text = "Koostan PERSREPi..."; reportWriter = new PersrepReportWriter(settings.reportTemplate); success = reportWriter.WriteReport(cardLogReader.ReadPersrepData(settings.startOfReport, settings.endOfReport, j1, j2, settings.companyFilter)); if (success) { progressStatusLabel.Text = "PERSREP koostatud!"; } } else if (settings.reportType == ReportType.ATTENDANCE) { progressStatusLabel.Text = "Koostan kohalolekukontrolli..."; reportWriter = new AttendanceReportWriter(settings.reportTemplate); success = reportWriter.WriteReport(cardLogReader.ReadAttendanceData(settings.startOfReport, settings.endOfReport, j1, j2, settings.companyFilter, settings.platoonFilter)); if (success) { progressStatusLabel.Text = "Kohalolekukontroll koostatud!"; } } // Collect unknown people if no other filters than time are enabled if (settings.companyFilter == null && settings.platoonFilter == null && !j2.enabled && !j1.enabled) { progressStatusLabel.Text = "Leian tundmatud inimesed..."; var unknowns = cardLogReader.ReadUnknownPeople(settings.startOfReport, settings.endOfReport); reportWriter.HandleUnknownPeople(unknowns); progressStatusLabel.Text = "Tundmatud leitud!"; } reportReady = true; reportLoading = false; settings.companyFilter = settings.platoonFilter = null; UpdateValidity(); progressStatusLabel.Text = "Raport on valmis salvestamiseks."; return(success); }
private static void CheckConfiguration(string file, IReportWriter reportWriter) { if (!File.Exists(file)) { WriteLine("Could not find file {0}", file); Environment.ExitCode = int.MaxValue; return; } ConfigurationTestSuite info; try { var xml = File.ReadAllText(file, Encoding.Unicode); info = xml.ToObject <ConfigurationTestSuite>(); } catch (InvalidOperationException ex) { DisplayError("Unable to read file, check that the file is in Unicode."); DisplayError(ex.ToString()); return; } if (info == null) { DisplayError(String.Format("Could not convert {0} to ConfigurationTestSuite object.", file)); return; } WriteLine("Running Tests: " + DateTime.Now.ToString("G", CultureInfo.CurrentCulture)); WriteLine(); _reportEntries.Clear(); var successfulTests = info.Tests.Select(RunTest).Count(result => result); var reportPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\TestReport"; if (!Directory.Exists(reportPath)) { Directory.CreateDirectory(reportPath); } var path = Path.Combine(reportPath, ReportHelper.GetReportFileName(reportWriter.Extension)); reportWriter.WriteReport(path, _reportEntries.ToList()); WriteLine(); WriteLine("Completed Tests: " + DateTime.Now.ToString("G", CultureInfo.CurrentCulture)); var totalTests = info.Tests.Count(); var totalTestsString = totalTests.ToString(StandardNumberFormat); var totalWidth = totalTestsString.Length; var failedTests = totalTests - successfulTests; WriteLine("Tests Run: {0}", totalTestsString); WriteLine("Tests Passed: {0}", successfulTests.ToString(StandardNumberFormat).PadLeft(totalWidth)); WriteLine("Tests Failed: {0}", failedTests.ToString(StandardNumberFormat).PadLeft(totalWidth)); if (failedTests > 0) { DisplayError("SMOKE TEST FAILED!"); } else { SmokeTestsPassed = true; DisplaySuccess("Smoke test passed successfully"); } if (failedTests > 0) { Environment.ExitCode = 1; } else { Environment.ExitCode = 0; } }