diff --git a/EnvelopeGenerator.ReceiverUI/Pages/EnvelopeReceiverPage_DxReportViewer.razor b/EnvelopeGenerator.ReceiverUI/Pages/EnvelopeReceiverPage_DxReportViewer.razor index 3a84ea71..7c2de031 100644 --- a/EnvelopeGenerator.ReceiverUI/Pages/EnvelopeReceiverPage_DxReportViewer.razor +++ b/EnvelopeGenerator.ReceiverUI/Pages/EnvelopeReceiverPage_DxReportViewer.razor @@ -12,47 +12,37 @@ -@if (Report is not null) { - +@if (_report is not null) { + } @code { - [Parameter] public string EnvelopeKey { get; set; } = string.Empty; + [Parameter] public string EnvelopeKey { get; init; } = null!; - XtraReport Report { get; set; } = null!; + XtraReport? _report = null; - byte[] BasePdfBytes { get; set; } = null!; - - protected override async Task OnInitializedAsync() { - if (!AppOptions.Value.UsePredefinedReports) { - try { - var pdfBytes = await DocumentService.GetDocumentAsync(EnvelopeKey); - if (pdfBytes is { Length: > 0 }) - BasePdfBytes = pdfBytes; - else - throw new InvalidOperationException($"No PDF bytes found for EnvelopeKey: {EnvelopeKey}"); - } catch (HttpRequestException ex) { - throw new InvalidOperationException($"Failed to load document for EnvelopeKey: {EnvelopeKey}", ex); - } - } - - Report = CreateReport(); + protected override async Task OnInitializedAsync() + { + _report = await CreateReport(); } - XtraReport CreateReport() + async Task CreateReport() { if (AppOptions.Value.UsePredefinedReports) { - return ReportStorage.TryGetReport("LargeDatasetReport", out var savedReport) - ? savedReport - : PredefinedReports.ReportsFactory.GetReport("LargeDatasetReport"); + return PredefinedReports.ReportsFactory.GetReport("LargeDatasetReport"); } else { + + var pdfBytes = await DocumentService.GetDocumentAsync(EnvelopeKey); + if (pdfBytes is null || pdfBytes.Length == 0) + throw new InvalidOperationException($"No PDF bytes found for EnvelopeKey: {EnvelopeKey}"); + var report = new XtraReport(); var detail = new DevExpress.XtraReports.UI.DetailBand(); report.Bands.Add(detail); - detail.Controls.Add(new DevExpress.XtraReports.UI.XRPdfContent { Source = BasePdfBytes, GenerateOwnPages = true }); + detail.Controls.Add(new DevExpress.XtraReports.UI.XRPdfContent { Source = pdfBytes, GenerateOwnPages = true }); return report; } }