diff --git a/EnvelopeGenerator.ReceiverUI/Pages/ReportViewer.razor b/EnvelopeGenerator.ReceiverUI/Pages/ReportViewer.razor index 6497aad3..9f46153a 100644 --- a/EnvelopeGenerator.ReceiverUI/Pages/ReportViewer.razor +++ b/EnvelopeGenerator.ReceiverUI/Pages/ReportViewer.razor @@ -29,7 +29,7 @@ @if(Report is not null) { - + } @code { @@ -37,11 +37,10 @@ XtraReport? Report; bool SignatureApplied; string? SignatureValidationMessage; + int ViewerKey; protected override async Task OnInitializedAsync() { - Report = ReportStorage.TryGetReport("LargeDatasetReport", out var savedReport) - ? savedReport - : PredefinedReports.ReportsFactory.GetReport("LargeDatasetReport"); + Report = CreateReportInstance(); await Task.CompletedTask; } @@ -55,12 +54,8 @@ await JSRuntime.InvokeVoidAsync("receiverSignature.clear", "receiver-signature-pad"); SignatureApplied = false; SignatureValidationMessage = null; - Report = ReportStorage.TryGetReport("LargeDatasetReport", out var savedReport) - ? savedReport - : PredefinedReports.ReportsFactory.GetReport("LargeDatasetReport"); - - if(reportViewer is not null) - await reportViewer.OpenReportAsync(Report); + Report = CreateReportInstance(); + ViewerKey++; } async Task ApplySignatureAsync() { @@ -73,11 +68,9 @@ } SignatureValidationMessage = null; - ApplySignatureToReport(signatureDataUrl); + Report = CreateSignedReportInstance(signatureDataUrl); SignatureApplied = true; - - if(reportViewer is not null) - await reportViewer.OpenReportAsync(Report); + ViewerKey++; } async Task ExportSignedPdfAsync() { @@ -89,6 +82,18 @@ await reportViewer.ExportToAsync(ExportFormat.Pdf); } + XtraReport CreateReportInstance() { + return ReportStorage.TryGetReport("LargeDatasetReport", out var savedReport) + ? savedReport + : PredefinedReports.ReportsFactory.GetReport("LargeDatasetReport"); + } + + XtraReport CreateSignedReportInstance(string signatureDataUrl) { + var report = CreateReportInstance(); + AddSignature(report, signatureDataUrl); + return report; + } + void ApplySignatureToReport(string signatureDataUrl) { Report ??= ReportStorage.TryGetReport("LargeDatasetReport", out var savedReport) ? savedReport