public ReportRetrieveResponse 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 ReportRetrieveResponse(); 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; return(response); }
public ReportRetrieveResponse Retrieve(IDbConnection connection, ReportRetrieveRequest request) { request.CheckNotNull(); if (request.ReportKey.IsTrimmedEmpty()) { throw new ArgumentNullException("reportKey"); } var report = ReportRegistry.GetReport(request.ReportKey); if (report == null) { throw new ArgumentOutOfRangeException("reportKey"); } var response = new ReportRetrieveResponse(); response.Properties = Serenity.PropertyGrid.PropertyItemHelper.GetPropertyItemsFor(report.Type); response.Designs = GetReportDesigns(connection, request.ReportKey); response.ReportKey = report.Key; response.Title = report.Title; var reportInstance = Activator.CreateInstance(report.Type); response.InitialSettings = reportInstance; response.IsDataOnlyReport = reportInstance is IDataOnlyReport; return(response); }
public ReportRetrieveResponse Retrieve(ReportRetrieveRequest request, IServiceProvider serviceProvider, IPropertyItemProvider propertyItemProvider) { if (request is null) { throw new ArgumentNullException(nameof(request)); } if (request.ReportKey.IsEmptyOrNull()) { throw new ArgumentNullException("reportKey"); } if (propertyItemProvider is null) { throw new ArgumentNullException(nameof(propertyItemProvider)); } var reportInfo = ReportRegistry.GetReport(request.ReportKey); if (reportInfo == null) { throw new ArgumentOutOfRangeException("reportKey"); } if (reportInfo.Permission != null) { Permissions.ValidatePermission(reportInfo.Permission, Localizer); } var response = new ReportRetrieveResponse(); response.Properties = propertyItemProvider.GetPropertyItemsFor(reportInfo.Type).ToList(); response.ReportKey = reportInfo.Key; response.Title = reportInfo.Title; var reportInstance = ActivatorUtilities.CreateInstance(serviceProvider, reportInfo.Type); response.InitialSettings = reportInstance; response.IsDataOnlyReport = reportInstance is IDataOnlyReport; return(response); }