Last active
June 2, 2021 02:14
-
-
Save NDiiong/efacf67fdbb785240f2d7083d9e98434 to your computer and use it in GitHub Desktop.
Pattern Builder
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public enum PdfPageSize | |
{ | |
A0, | |
A1, | |
A2, | |
A3, | |
A4 | |
} | |
public class DocumentPreferencesBuilder | |
{ | |
public DocumentMargins _margins {get;set;} | |
public void DefaultDocumentMargins(DocumentMargins margins) | |
{ | |
_margins = margins; | |
} | |
public void PageSize(PdfPageSize size) | |
{ | |
_pdfReport.DataBuilder.DefaultPageSize(size.ToRectangle()); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class DocumentPreferencesBuilder | |
{ | |
readonly PdfReport _pdfReport; | |
public DocumentPreferencesBuilder(PdfReport pdfReport) | |
{ | |
_pdfReport = pdfReport; | |
} | |
public void DocumentMargins(DocumentMargins margins) | |
{ | |
_pdfReport.DataBuilder.DefaultDocumentMargins(margins); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class PagesHeaderBuilder | |
{ | |
readonly PdfReport _pdfReport; | |
public PagesHeaderBuilder(PdfReport pdfReport) | |
{ | |
_pdfReport = pdfReport; | |
} | |
public void InlineHeader(Action<InlineHeaderProviderBuilder> inlineHeaderProviderBuilder) | |
{ | |
var builder = new InlineHeaderProviderBuilder(); | |
inlineHeaderProviderBuilder(builder); | |
_pdfReport.DataBuilder.SetHeader(builder.InlineHeaderProvider); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class PdfReport | |
{ | |
internal DataBuilder DataBuilder { set; get; } | |
public PdfReport() | |
{ | |
DataBuilder = new DataBuilder(); | |
} | |
public PdfReport DocumentPreferences(Action<DocumentPreferencesBuilder> pdfRptPagePreferencesBuilder) | |
{ | |
var builder = new DocumentPreferencesBuilder(this); | |
pdfRptPagePreferencesBuilder(builder); | |
return this; | |
} | |
public PdfReport PagesHeader(Action<PagesHeaderBuilder> pagesHeaderBuilder) | |
{ | |
var builder = new PagesHeaderBuilder(this); | |
pagesHeaderBuilder(builder); | |
return this; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment