public static IDynamicAuthorizationBuilder AddJsonStore(this IDynamicAuthorizationBuilder builder, Action <JsonOptions> options) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } var jsonOptions = new JsonOptions(); options.Invoke(jsonOptions); if (jsonOptions.FilePath == null) { throw new NullReferenceException(nameof(jsonOptions.FilePath)); } AddRequiredServices(builder.Services, jsonOptions); return(builder); }
public static IDynamicAuthorizationBuilder AddSqlServerStore(this IDynamicAuthorizationBuilder builder, Action <SqlOptions> options) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } var sqlOptions = new SqlOptions(); options.Invoke(sqlOptions); var serviceProvider = builder.Services.BuildServiceProvider(); var scope = serviceProvider.CreateScope(); var logger = scope.ServiceProvider.GetService <ILogger <SqlTableCreator> >(); var tableCreator = new SqlTableCreator(sqlOptions, logger); tableCreator.CreateTable(); scope.Dispose(); serviceProvider.Dispose(); builder.Services.AddSingleton(sqlOptions); builder.Services.AddScoped <IRoleAccessStore, RoleAccessStore>(); return(builder); }
public static IDynamicAuthorizationBuilder AddJsonStore(this IDynamicAuthorizationBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } AddRequiredServices(builder.Services, new JsonOptions()); return(builder); }
public static IDynamicAuthorizationBuilder AddUi(this IDynamicAuthorizationBuilder builder, IMvcBuilder mvcBuilder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (mvcBuilder == null) { throw new ArgumentNullException(nameof(mvcBuilder)); } var assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.FullName.StartsWith("DynamicAuthorization.Mvc.Ui")).ToList(); foreach (var assembly in assemblies) { if (assembly.FullName.Contains("Views")) { mvcBuilder.PartManager.ApplicationParts.Add(new CompiledRazorAssemblyPart(assembly)); } else { mvcBuilder.PartManager.ApplicationParts.Add(new AssemblyPart(assembly)); var manifestResourceNames = assembly.GetManifestResourceNames(); } } builder.Services.AddScoped <AddResourcesToViewFilter>(); builder.Services.AddScoped( typeof(IIdentityService), typeof(IdentityService <, , ,>).MakeGenericType( DynamicAuthorizationOptions.DbContextType, DynamicAuthorizationOptions.UserType, DynamicAuthorizationOptions.RoleType, DynamicAuthorizationOptions.KeyType )); return(builder); }