diff --git a/EnvelopeGenerator.ReceiverUI/Pages/ReportViewer.razor b/EnvelopeGenerator.ReceiverUI/Pages/ReportViewer.razor index a33ed909..cd5bc717 100644 --- a/EnvelopeGenerator.ReceiverUI/Pages/ReportViewer.razor +++ b/EnvelopeGenerator.ReceiverUI/Pages/ReportViewer.razor @@ -82,6 +82,25 @@ } + +
+

Bitte geben Sie die folgenden Angaben ein. Das Datum wird automatisch hinzugefuegt.

+
+
+ + +
+
+ + +
+
+ + +
+
+
+ @if(!string.IsNullOrWhiteSpace(PopupValidationMessage)) {
@PopupValidationMessage
} @@ -125,6 +144,9 @@ string ActiveSignatureTab = SignatureTabDraw; string TypedSignatureText = string.Empty; string TypedSignatureFont = "'Brush Script MT', cursive"; + string SignerFullName = string.Empty; + string SignerPosition = string.Empty; + string SignaturePlace = string.Empty; int ViewerKey; protected override async Task OnInitializedAsync() { @@ -195,6 +217,16 @@ } async Task ApplySignatureAsync() { + if(string.IsNullOrWhiteSpace(SignerFullName)) { + PopupValidationMessage = "Bitte geben Sie Vor- und Nachname ein."; + return; + } + + if(string.IsNullOrWhiteSpace(SignaturePlace)) { + PopupValidationMessage = "Bitte geben Sie den Ort ein."; + return; + } + var signatureDataUrl = await GetActiveSignatureDataUrlAsync(); if(string.IsNullOrWhiteSpace(signatureDataUrl)) { @@ -204,7 +236,7 @@ PopupValidationMessage = null; SignatureValidationMessage = null; - Report = CreateSignedReportInstance(signatureDataUrl); + Report = CreateSignedReportInstance(signatureDataUrl, SignerFullName.Trim(), SignerPosition.Trim(), SignaturePlace.Trim()); SignatureApplied = true; SignaturePopupVisible = false; ViewerKey++; @@ -242,13 +274,13 @@ : PredefinedReports.ReportsFactory.GetReport("LargeDatasetReport"); } - XtraReport CreateSignedReportInstance(string signatureDataUrl) { + XtraReport CreateSignedReportInstance(string signatureDataUrl, string signerFullName, string signerPosition, string signaturePlace) { var report = CreateReportInstance(); - AddSignature(report, signatureDataUrl); + AddSignature(report, signatureDataUrl, signerFullName, signerPosition, signaturePlace); return report; } - static void AddSignature(XtraReport report, string signatureDataUrl) { + static void AddSignature(XtraReport report, string signatureDataUrl, string signerFullName, string signerPosition, string signaturePlace) { var imageBytes = Convert.FromBase64String(signatureDataUrl[(signatureDataUrl.IndexOf(',') + 1)..]); using var imageStream = new MemoryStream(imageBytes); var imageSource = new ImageSource(DXImage.FromStream(imageStream)); @@ -259,13 +291,17 @@ report.Bands.Add(bottomMargin); } - bottomMargin.HeightF = Math.Max(bottomMargin.HeightF, 120F); + bottomMargin.HeightF = Math.Max(bottomMargin.HeightF, 140F); RemoveExistingSignature(bottomMargin); + var signatureInformation = string.IsNullOrWhiteSpace(signerPosition) + ? $"Empfaengerunterschrift\nName: {signerFullName}\nOrt: {signaturePlace}\nDatum: {DateTime.Now:g}" + : $"Empfaengerunterschrift\nName: {signerFullName}\nPosition: {signerPosition}\nOrt: {signaturePlace}\nDatum: {DateTime.Now:g}"; + var signatureLabel = new XRLabel { Name = "receiverSignatureLabel", - Text = $"Empfaengerunterschrift - {DateTime.Now:g}", - BoundsF = new RectangleF(390F, 6F, 230F, 18F), + Text = signatureInformation, + BoundsF = new RectangleF(390F, 6F, 230F, 48F), Font = new DXFont("Open Sans", 8F, DXFontStyle.Bold), ForeColor = System.Drawing.Color.FromArgb(73, 80, 87), TextAlignment = TextAlignment.MiddleLeft @@ -274,7 +310,7 @@ var signature = new XRPictureBox { Name = "receiverSignatureImage", ImageSource = imageSource, - BoundsF = new RectangleF(390F, 28F, 230F, 70F), + BoundsF = new RectangleF(390F, 58F, 230F, 70F), Sizing = ImageSizeMode.ZoomImage, Borders = BorderSide.Bottom, BorderColor = System.Drawing.Color.FromArgb(73, 80, 87)