public ReportRetrieveResult Retrieve(ReportRetrieveRequest request) { request.CheckNotNull(); if (request.ReportKey.IsEmptyOrNull()) { throw new ArgumentNullException("reportKey"); } var reportInfo = ReportRegistry.GetReport(request.ReportKey); if (reportInfo == null) { throw new ArgumentOutOfRangeException("reportKey"); } if (reportInfo.Permission != null) { Authorization.ValidatePermission(reportInfo.Permission); } var response = new ReportRetrieveResult(); response.Properties = PropertyItemHelper.GetPropertyItemsFor(reportInfo.Type); response.ReportKey = reportInfo.Key; response.Title = reportInfo.Title; var reportInstance = Activator.CreateInstance(reportInfo.Type); response.InitialSettings = reportInstance; response.IsDataOnlyReport = reportInstance is IDataOnlyReport; response.IsExternalReport = reportInstance is IExternalReport; return(response); }
public ReportRetrieveResult Retrieve(ReportRetrieveRequest request, IServiceProvider serviceProvider, IPropertyItemProvider propertyItemProvider) { if (request is null) { throw new ArgumentNullException(nameof(request)); } if (request.ReportKey.IsEmptyOrNull()) { throw new ArgumentNullException(nameof(request.ReportKey)); } if (propertyItemProvider is null) { throw new ArgumentNullException(nameof(propertyItemProvider)); } var reportInfo = ReportRegistry.GetReport(request.ReportKey); if (reportInfo == null) { throw new ArgumentOutOfRangeException(nameof(request.ReportKey)); } if (reportInfo.Permission != null) { Permissions.ValidatePermission(reportInfo.Permission, Localizer); } var response = new ReportRetrieveResult { Properties = propertyItemProvider.GetPropertyItemsFor(reportInfo.Type).ToList(), ReportKey = reportInfo.Key, Title = reportInfo.Title }; var reportInstance = ActivatorUtilities.CreateInstance(serviceProvider, reportInfo.Type); response.InitialSettings = reportInstance; response.IsDataOnlyReport = reportInstance is IDataOnlyReport; response.IsExternalReport = reportInstance is IExternalReport; return(response); }