diff --git a/EnvelopeGenerator.ReceiverUI/Pages/ReportViewer.razor b/EnvelopeGenerator.ReceiverUI/Pages/ReportViewer.razor index 122f86ce..6514c3cb 100644 --- a/EnvelopeGenerator.ReceiverUI/Pages/ReportViewer.razor +++ b/EnvelopeGenerator.ReceiverUI/Pages/ReportViewer.razor @@ -286,8 +286,10 @@ PopupValidationMessage = null; SignatureValidationMessage = null; + Report = CreateSignedReportInstance(signatureDataUrl, SignerFullName.Trim(), SignerPosition.Trim(), SignaturePlace.Trim()); SignatureApplied = true; SignaturePopupVisible = false; + ViewerKey++; } async Task GetActiveSignatureDataUrlAsync() { @@ -303,31 +305,14 @@ } async Task ExportSignedPdfAsync() { - if(!SignatureApplied) { + if(!SignatureApplied || Report is null) { SignatureValidationMessage = "Bitte fuegen Sie die Unterschrift zuerst zum Bericht hinzu."; return; } try { SignatureValidationMessage = null; - - var signatureDataUrl = await GetActiveSignatureDataUrlAsync(); - if(string.IsNullOrWhiteSpace(signatureDataUrl)) { - SignatureValidationMessage = "Die Unterschrift konnte nicht gelesen werden."; - return; - } - - var signedKey = $"{EnvelopeKey}_signed"; - var signedReport = new XtraReport(); - var detail = new DevExpress.XtraReports.UI.DetailBand(); - signedReport.Bands.Add(detail); - detail.Controls.Add(new DevExpress.XtraReports.UI.XRPdfContent { Source = PdfBytes }); - ReportStorage.SetData(signedReport, signedKey); - Report = ReportStorage.TryGetReport(signedKey, out var stored) ? stored : signedReport; - ViewerKey++; - await InvokeAsync(StateHasChanged); - await Task.Delay(300); - await reportViewer.ExportToAsync(ExportFormat.Pdf); + await reportViewer!.ExportToAsync(ExportFormat.Pdf); } catch(Exception) { SignatureValidationMessage = "Das signierte PDF konnte nicht exportiert werden. Bitte laden Sie die Seite neu und versuchen Sie es erneut."; }