using DevExpress.XtraReports.UI; using DevExpress.XtraReports.Services; using EnvelopeGenerator.ReceiverUI.PredefinedReports; namespace EnvelopeGenerator.ReceiverUI.Services { public class CustomReportProvider : IReportProviderAsync { private readonly InMemoryReportStorageWebExtension reportStorage; public CustomReportProvider(InMemoryReportStorageWebExtension reportStorage) { this.reportStorage = reportStorage; } public Task GetReportAsync(string id, ReportProviderContext context) { if(reportStorage.TryGetReport(id, out var savedReport)) return Task.FromResult(savedReport); return Task.FromResult(ReportsFactory.GetReport(id)); } } }