public static void RegisterFormScripts(IDynamicScriptManager scriptManager, ITypeSource typeSource, IPropertyItemProvider propertyProvider, IServiceProvider serviceProvider) { if (scriptManager == null) { throw new ArgumentNullException(nameof(scriptManager)); } if (typeSource == null) { throw new ArgumentNullException(nameof(typeSource)); } if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } var scripts = new List <Func <string> >(); foreach (var type in typeSource.GetTypesWithAttribute(typeof(FormScriptAttribute))) { var attr = type.GetCustomAttribute <FormScriptAttribute>(); var key = attr.Key ?? type.FullName; var script = new FormScript(key, type, propertyProvider, serviceProvider); scriptManager.Register(script); scripts.Add(script.GetScript); } scriptManager.Register("FormBundle", new ConcatenatedScript(scripts)); }
protected PropertyItemsScript(string scriptName, Type type, IPropertyItemProvider propertyProvider, IServiceProvider serviceProvider) { this.type = type ?? throw new ArgumentNullException(nameof(type)); this.serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); this.propertyProvider = propertyProvider ?? throw new ArgumentNullException(nameof(PropertyItemsScript.propertyProvider)); this.scriptName = scriptName; }
public ActionResult Retrieve(ReportRetrieveRequest request, [FromServices] IPropertyItemProvider propertyItemProvider) { if (propertyItemProvider is null) { throw new ArgumentNullException(nameof(propertyItemProvider)); } return(this.ExecuteMethod(() => new ReportRepository(Context, ReportRegistry) .Retrieve(request, HttpContext.RequestServices, propertyItemProvider))); }
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); }
public ColumnsScript(string name, Type columnsType, IPropertyItemProvider propertyProvider, IServiceProvider serviceProvider) : base("Columns." + CheckName(name), columnsType, propertyProvider, serviceProvider) { }
public FormScript(string name, Type formType, IPropertyItemProvider propertyProvider, IServiceProvider serviceProvider) : base("Form." + CheckName(name), formType, propertyProvider, serviceProvider) { }