public void DownloadReport(MemoryStream memoryStream, ReportFormatType reportFormat, string reportName, params object[] args) { Response.Clear(); Response.Buffer = true; switch (reportFormat) { case FingerprintsModel.Enums.ReportFormatType.Pdf: byte[] bytes = memoryStream.ToArray(); memoryStream.Close(); Response.ContentType = "application/pdf"; Response.AddHeader("Content-Disposition", "attachment; filename=" + reportName + "" + DateTime.Now.ToString("MM/dd/yyyy") + ".pdf"); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.BinaryWrite(bytes); break; case FingerprintsModel.Enums.ReportFormatType.Xls: Response.Charset = ""; Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment;filename=" + reportName + "" + DateTime.Now.ToString("MM/dd/yyyy") + ".xlsx"); memoryStream.WriteTo(Response.OutputStream); break; } Response.End(); Response.Close(); }
public static bool TryParse(string str, out ReportFormatType type) { var parsed = true; type = ReportFormatType.TXT; str = str ?? string.Empty; if (str.Equals(Resources.Strings.ReportHtmlFormat)) { type = ReportFormatType.HTML; } else if (str.Equals(Resources.Strings.ReportPdfFormat)) { type = ReportFormatType.PDF; } else if (str.Equals(Resources.Strings.ReportJsonFormat)) { type = ReportFormatType.JSON; } else if (str.Equals(Resources.Strings.ReportTextFormat)) { type = ReportFormatType.TXT; } else { parsed = false; } return(parsed); }
public void Test(string value, ReportFormatType reportFormatType, int errorCount) { ReportFormat tag = (ReportFormat)_parser.Parse(string.Empty, value); Assert.That(tag.ReportFormatType, Is.EqualTo(reportFormatType)); Assert.That(tag.ErrorCount, Is.EqualTo(errorCount)); }
private IReportBodyGenerator GetGenerator(ReportFormatType format) { var generator = generators.FirstOrDefault(x => x.Type == format); if (generator == null) { throw new InvalidOperationException($"Can't find {format} report genarator. It is not registered in {this.GetType().FullName}."); } return(generator); }
public void DownloadReport(MemoryStream memoryStream, ReportFormatType reportFormat, string reportName, params object[] args) { Response.Clear(); Response.Buffer = true; switch (reportFormat) { case FingerprintsModel.Enums.ReportFormatType.Pdf: byte[] bytes = memoryStream.ToArray(); Font blackFont = FontFactory.GetFont("Arial", 10, Font.ITALIC, BaseColor.BLACK); using (MemoryStream stream = new MemoryStream()) { PdfReader reader = new PdfReader(bytes); using (PdfStamper stamper = new PdfStamper(reader, stream)) { int pages = reader.NumberOfPages; for (int i = 1; i <= pages; i++) { ColumnText.ShowTextAligned(stamper.GetUnderContent(i), Element.ALIGN_RIGHT, new Phrase(string.Concat(i.ToString(), " ", "of", " ", pages), blackFont), 568f, 15f, 0); } } bytes = stream.ToArray(); } memoryStream.Close(); Response.ContentType = "application/pdf"; Response.AddHeader("Content-Disposition", "attachment; filename=" + reportName + "" + DateTime.Now.ToString("MM/dd/yyyy") + ".pdf"); Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.BinaryWrite(bytes); break; case FingerprintsModel.Enums.ReportFormatType.Xls: Response.Charset = ""; Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AddHeader("content-disposition", "attachment;filename=" + reportName + "" + DateTime.Now.ToString("MM/dd/yyyy") + ".xlsx"); memoryStream.WriteTo(Response.OutputStream); break; } Response.End(); Response.Close(); }
private (string, SaveOptions) GetFormatOptions(ReportFormatType formatType) { switch (formatType) { case ReportFormatType.Excel: return("xlsx", new XlsxSaveOptions()); case ReportFormatType.Pdf: return("pdf", new PdfSaveOptions()); default: return("xlsx", new XlsxSaveOptions()); } }
public static string GetExportFormatString(ReportFormatType type) { switch (type) { case ReportFormatType.XML: return "XML"; case ReportFormatType.CSV: return "CSV"; case ReportFormatType.Image: return "IMAGE"; case ReportFormatType.PDF: return "PDF"; case ReportFormatType.MHTML: return "MHTML"; case ReportFormatType.HTML4: return "HTML4.0"; case ReportFormatType.HTML32: return "HTML3.2"; case ReportFormatType.Excel: return "EXCEL"; case ReportFormatType.Word: return "WORD"; default: return "PDF"; } }
private static IBuildServerReporter CreateBuildServerReporter(ReportFormatType reportFormat) { IBuildServerReporter reporter; switch (reportFormat) { case ReportFormatType.TeamCityVerbose: reporter = new TeamCityReporter(showSuccessMessage: true); break; case ReportFormatType.TeamCityNoSuccessMessage: reporter = new TeamCityReporter(showSuccessMessage: false); break; default: reporter = new NullBuildServerReporter(); break; } return(reporter); }
public static string GetReportFormat(ReportFormatType type) { switch (type) { case ReportFormatType.HTML: return(Resources.Strings.ReportHtmlFormat); case ReportFormatType.PDF: return(Resources.Strings.ReportPdfFormat); case ReportFormatType.JSON: return(Resources.Strings.ReportJsonFormat); case ReportFormatType.TXT: return(Resources.Strings.ReportTextFormat); default: break; } return(null); }
private List <ReportFormatType> ParseReportFormats(string key, ReportFormatType defaultFormat = ReportFormatType.TXT) { var formatsStr = (configuration[key] ?? string.Empty).ToUpperInvariant().Trim(); if (!string.IsNullOrWhiteSpace(formatsStr)) { var formatsList = formatsStr.Split(';', StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToList(); var result = new List <ReportFormatType>(); formatsList.ForEach(x => { if (Enum.TryParse(x, out ReportFormatType type)) { result.Add(type); } }); return(result); } return(new List <ReportFormatType>() { defaultFormat }); }
public ReportExporterResponse GenerateReportForExport(UserActivityDto userActivity, ReportFormatType formatType) { try { //If using Professional version, put your serial key below. SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY"); // Continue to use the component in a Trial mode when free limit is reached. SpreadsheetInfo.FreeLimitReached += (sender, e) => e.FreeLimitReachedAction = FreeLimitReachedAction.ContinueAsTrial; var worklogs = userActivity.WorkLogItems; int numberOfItems = worklogs.Count; var stringPath = _readOnlyTemplateStorageService.GetPathByKey(ReportType.ActivitiesReport.ToString()); // Load an Excel template. xls var workbook = ExcelFile.Load(stringPath); // Get template sheet. var worksheet = workbook.Worksheets[0]; // Find cells with placeholder text and set their values. int row, column; if (worksheet.Cells.FindText("Name#", out row, out column)) { worksheet.Cells[row, column].Value = userActivity.UserName; } if (worksheet.Cells.FindText("Surname#", out row, out column)) { worksheet.Cells[row, column].Value = userActivity.UserSurname; } if (worksheet.Cells.FindText("Project name#", out row, out column)) { worksheet.Cells[row, column].Value = userActivity.ProjectName; } if (worksheet.Cells.FindText("Email#", out row, out column)) { worksheet.Cells[row, column].Value = userActivity.UserEmail; } // Copy template row. row = 16; worksheet.Rows.InsertCopy(row + 1, numberOfItems, worksheet.Rows[row]); // Fill copied rows with sample data. for (int i = 0; i < numberOfItems; i++) { var currentRow = worksheet.Rows[row + i]; currentRow.Cells[0].SetValue(worklogs[i].StartDate.DateTime.Date.ToShortDateString()); currentRow.Cells[1].SetValue(worklogs[i].Description); currentRow.Cells[2].SetValue(worklogs[i].StartDate.DateTime.ToShortTimeString()); currentRow.Cells[3].SetValue(worklogs[i].ActivityType.ToString()); currentRow.Cells[4].SetValue(new TimeSpan(worklogs[i].TimeSpent).TotalHours); } worksheet.Rows[11].Cells[4].SetValue(new TimeSpan(userActivity.TotalWorkLogInSeconds).TotalHours); worksheet.Calculate(); // Save the modified Excel template to output file. var saveOptions = GetFormatOptions(formatType); using var stream = new MemoryStream(); workbook.Save(stream, saveOptions.Item2); return(new ReportExporterResponse { FileContentType = saveOptions.Item2.ContentType, FileName = $"Worklog_{userActivity.UserName}_{userActivity.UserSurname}_{DateTime.UtcNow}.{saveOptions.Item1.ToLower()}", FileBytes = stream.ToArray(), }); } catch (Exception e) { _logger.LogError(e, "An error occured while creating report"); Console.WriteLine(e); throw; } }
public ReportFormat(string value, ReportFormatType reportFormatType, bool isImplicit = false) : base(value, isImplicit) { ReportFormatType = reportFormatType; }
/// <inheritdoc/> public byte[] PrepareDocument(IReportBodyDetails details, ReportFormatType format) { return(GetGenerator(format).PrepareDocument(details)); }
public ReportExporterResponse GenerateReportForExport(UserActivityDto userActivity, ReportFormatType formatType) { // If using Professional version, put your serial key below. SpreadsheetInfo.SetLicense("FREE-LIMITED-KEY"); var worklogs = userActivity.WorkLogItems; int numberOfItems = worklogs.Count; var stringPath = _readOnlyTemplateStorageService.GetPathByKey(ReportType.ActivitiesReport.ToString()); // Load an Excel template. xls var workbook = ExcelFile.Load(stringPath); // Get template sheet. var worksheet = workbook.Worksheets[0]; // Find cells with placeholder text and set their values. int row, column; if (worksheet.Cells.FindText("[Name#]", out row, out column)) { worksheet.Cells[row, column].Value = userActivity.UserName; } if (worksheet.Cells.FindText("[Surname#]", out row, out column)) { worksheet.Cells[row, column].Value = userActivity.UserSurname; } if (worksheet.Cells.FindText("[Project name#]", out row, out column)) { worksheet.Cells[row, column].Value = userActivity.ProjectName; } if (worksheet.Cells.FindText("[Email#]", out row, out column)) { worksheet.Cells[row, column].Value = userActivity.UserEmail; } // Copy template row. row = 17; worksheet.Rows.InsertCopy(row + 1, numberOfItems - 1, worksheet.Rows[row]); // Fill copied rows with sample data. var random = new Random(); for (int i = 0; i < numberOfItems; i++) { var currentRow = worksheet.Rows[row + i]; currentRow.Cells[1].SetValue(worklogs[i].StartDate.DateTime.ToLongDateString()); currentRow.Cells[2].SetValue(worklogs[i].Description); currentRow.Cells[3].SetValue(worklogs[i].ActivityType.ToString()); currentRow.Cells[4].SetValue(worklogs[i].TimeSpent.ToString(@"dd\.hh\:mm\:ss")); } worksheet.Rows[12].Cells[4].SetValue(userActivity.TotalWorkLogInSeconds); worksheet.Calculate(); // Save the modified Excel template to output file. var saveOptions = GetFormatOptions(formatType); using var stream = new MemoryStream(); workbook.Save(stream, saveOptions.Item2); return(new ReportExporterResponse { FileContentType = saveOptions.Item2.ContentType, FileName = $"Worklog_{userActivity.UserName}_{userActivity.UserSurname}_{DateTime.UtcNow}.{saveOptions.Item1.ToLower()}", FileBytes = stream.ToArray() }); }
private async Task <IDriveItem> UploadReportAsync(ITurnContext context, IReportBodyDetails reportDetails, byte[] reportBytes, ReportFormatType format, CancellationToken cancellationToken) { IDriveItem file = null; var folderName = string.IsNullOrEmpty(reportsFolderName) ? string.Empty : (reportsFolderName + "/"); var fileName = $"{DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss")}_history_report"; var reportBytesToUpload = reportBytes; switch (format) { case ReportFormatType.TXT: { fileName = $"{fileName}_.txt"; break; } case ReportFormatType.JSON: { fileName = $"{fileName}_.json"; break; } case ReportFormatType.HTML: { fileName = $"{fileName}_.html"; break; } case ReportFormatType.PDF: { fileName = $"{fileName}_.pdf"; break; } } file = await UploadFile(reportBytesToUpload, reportDetails, $"{folderName}{fileName}", context, cancellationToken); file.FileName = fileName; return(file); }
private async Task <byte[]> GenerateReportByteArray(ITurnContext context, IReportBodyDetails reportBodyDetails, ReportFormatType format, CancellationToken cancellationToken) { switch (format) { case ReportFormatType.HTML: case ReportFormatType.PDF: { await graphClient.DownloadImages(() => context.GetUserTokenAsync(this.connectionName, cancellationToken), reportBodyDetails.Messages); break; } } return(reportGenerator.PrepareDocument(reportBodyDetails, format)); }