public static CloudyConfigurator AddAdmin(this CloudyConfigurator configurator) { configurator.AddComponent <CloudyAdminComponent>(); configurator.Services.AddSingleton(new CloudyAdminOptions()); return(configurator); }
public static void AddCloudy(this IServiceCollection services, Action <CloudyConfigurator> cloudy) { services.Configure <RouteOptions>(options => { options.ConstraintMap.Add("contentroute", typeof(ContentRouteConstraint)); }); var options = new CloudyOptions(); var configurator = new CloudyConfigurator(services, options); cloudy(configurator); configurator.AddComponent <CloudyAssemblyHandle>(); if (Assembly.GetCallingAssembly() != Assembly.GetExecutingAssembly()) { configurator.AddComponentAssembly(Assembly.GetCallingAssembly()); } var AssemblyProvider = new AssemblyProvider(options.Assemblies.Select(a => new AssemblyWrapper(a))); services.AddSingleton <IAssemblyProvider>(AssemblyProvider); services.AddSingleton <IContextDescriptorProvider>(new ContextDescriptorProvider(ContextDescriptor.CreateFrom(options.Contexts))); foreach (var injector in new DependencyInjectorProvider(new DependencyInjectorCreator(AssemblyProvider)).GetAll()) { injector.InjectDependencies(services); } services.AddTransient <IStartupFilter, InitializerBootstrapper>(); }
public static CloudyConfigurator WithKubernetesCrds(this CloudyConfigurator configurator) { configurator.Options.HasDocumentProvider = true; configurator.AddComponent <KubernetesCrdComponent>(); return(configurator); }
public static CloudyConfigurator AddAdmin(this CloudyConfigurator configurator, Action <CloudyAdminConfigurator> admin) { configurator.AddComponent <CloudyUIAssemblyHandle>(); var options = new CloudyAdminOptions(); admin(new CloudyAdminConfigurator(options)); configurator.Services.AddSingleton(options); if (options.Unprotect) { configurator.Services.Configure <AuthorizationOptions>(o => o.AddPolicy("Cloudy.CMS.UI", builder => builder.RequireAssertion(a => true))); } else { configurator.Services.Configure <AuthorizationOptions>(o => o.AddPolicy("Cloudy.CMS.UI", builder => builder.RequireAuthenticatedUser())); } return(configurator); }
public static void AddCloudy(this IServiceCollection services, Action <CloudyConfigurator> configure) { services.Configure <RouteOptions>(options => { options.ConstraintMap.Add("contentroute", typeof(ContentRouteConstraint)); }); var options = new CloudyOptions(); var configurator = new CloudyConfigurator(services, options); configure(configurator); configurator.AddComponent <CloudyComponent>(); if (Assembly.GetCallingAssembly() != Assembly.GetExecutingAssembly()) { configurator.AddComponentAssembly(Assembly.GetCallingAssembly()); } if (!options.HasDocumentProvider) { configurator.WithInMemoryDatabase(); } var componentAssemblyProvider = new ComponentAssemblyProvider(options.ComponentAssemblies); services.AddSingleton <IComponentAssemblyProvider>(componentAssemblyProvider); var componentTypeProvider = new ComponentTypeProvider(options.Components); services.AddSingleton <IComponentTypeProvider>(componentTypeProvider); new CloudyDependencyInjector().InjectDependencies(services); foreach (var injector in new DependencyInjectorProvider(new DependencyInjectorCreator(componentAssemblyProvider, componentTypeProvider)).GetAll()) { injector.InjectDependencies(services); } services.AddTransient <IStartupFilter, InitializerBootstrapper>(); }