| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using QuestPDF.Helpers;
- namespace QuestPDF.ReportSample
- {
- public static class DataSource
- {
- public static ReportModel GetReport()
- {
- return new ReportModel
- {
- Title = "Sample Report Document",
- HeaderFields = HeaderFields(),
-
- LogoData = Helpers.GetImage("Logo.png"),
- Sections = Enumerable.Range(0, 40).Select(x => GenerateSection()).ToList(),
- Photos = Enumerable.Range(0, 25).Select(x => GetReportPhotos()).ToList()
- };
- List<ReportHeaderField> HeaderFields()
- {
- return new List<ReportHeaderField>
- {
- new ReportHeaderField()
- {
- Label = "Scope",
- Value = "Internal activities"
- },
- new ReportHeaderField()
- {
- Label = "Author",
- Value = "Marcin Ziąbek"
- },
- new ReportHeaderField()
- {
- Label = "Date",
- Value = DateTime.Now.ToString("g")
- },
- new ReportHeaderField()
- {
- Label = "Status",
- Value = "Completed, found 2 issues"
- }
- };
- }
-
- ReportSection GenerateSection()
- {
- var sectionLength = Helpers.Random.NextDouble() > 0.75
- ? Helpers.Random.Next(20, 40)
- : Helpers.Random.Next(5, 10);
-
- return new ReportSection
- {
- Title = Placeholders.Label(),
- Parts = Enumerable.Range(0, sectionLength).Select(x => GetRandomElement()).ToList()
- };
- }
- ReportSectionElement GetRandomElement()
- {
- var random = Helpers.Random.NextDouble();
- if (random < 0.9f)
- return GetTextElement();
-
- if (random < 0.95f)
- return GetMapElement();
-
- return GetPhotosElement();
- }
-
- ReportSectionText GetTextElement()
- {
- return new ReportSectionText
- {
- Label = Placeholders.Label(),
- Text = Placeholders.Paragraph()
- };
- }
-
- ReportSectionMap GetMapElement()
- {
- return new ReportSectionMap
- {
- Label = "Location",
- Location = Helpers.RandomLocation()
- };
- }
-
- ReportSectionPhotos GetPhotosElement()
- {
- return new ReportSectionPhotos
- {
- Label = "Photos",
- PhotoCount = Helpers.Random.Next(1, 15)
- };
- }
- ReportPhoto GetReportPhotos()
- {
- return new ReportPhoto()
- {
- Comments = Placeholders.Sentence(),
- Date = DateTime.Now - TimeSpan.FromDays(Helpers.Random.NextDouble() * 100),
- Location = Helpers.RandomLocation()
- };
- }
- }
- }
- }
|