Example #1
0
        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);
        }