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);
        }
Exemplo n.º 3
0
        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();
        }
Exemplo n.º 6
0
        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());
            }
        }
Exemplo n.º 7
0
        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";
            }
        }
Exemplo n.º 8
0
        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
            });
        }
Exemplo n.º 11
0
        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;
            }
        }
Exemplo n.º 12
0
 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()
            });
        }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        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));
        }