/// <summary> /// Register program assembly /// </summary> /// <param name="conf"></param> /// <param name="programType"></param> /// <returns></returns> public static IDashboardServiceCollection RegisterProgramAssembly(this IDashboardServiceCollection conf, Type programType) { if (programType.Name.Equals("Program").Negate()) { throw new Exception("Incorrect program type"); } var engineBuilder = new RazorLightEngineBuilder() .UseEmbeddedResourcesProject(programType) .UseMemoryCachingProvider(); RazorCompilerEngine.RegisterEngine(engineBuilder); return(conf); }
/// <summary> /// Add dashboard module storage /// </summary> /// <typeparam name="TDbContext"></typeparam> /// <param name="configuration"></param> /// <param name="options"></param> /// <returns></returns> public static IDashboardServiceCollection AddDashboardModuleStorage <TDbContext>( this IDashboardServiceCollection configuration, Action <DbContextOptionsBuilder> options) where TDbContext : DbContext, IDashboardDbContext { Arg.NotNull(configuration.Services, nameof(AddDashboardModuleStorage)); configuration.Services.AddDbContext <TDbContext>(options, ServiceLifetime.Transient); configuration.Services.AddScopedContextFactory <IDashboardDbContext, TDbContext>(); SystemEvents.Database.OnMigrate += (sender, args) => { GearApplication.GetHost <IWebHost>().MigrateDbContext <TDbContext>(); }; return(configuration); }
/// <summary> /// Register ui module /// </summary> /// <param name="services"></param> /// <returns></returns> public static IDashboardServiceCollection AddDashboardRazorUIModule(this IDashboardServiceCollection services) { services.Services.ConfigureOptions(typeof(DashBoardFileConfiguration)); MenuEvents.Menu.OnMenuSeed += (sender, args) => { GearApplication.BackgroundTaskQueue.PushBackgroundWorkItemInQueue(async x => { await x.InjectService <IMenuService>().AppendMenuItemsAsync(new DashboardMenuInitializer()); }); }; return(services); }
/// <summary> /// Register render service /// </summary> /// <param name="configuration"></param> /// <param name="renders"></param> /// <returns></returns> public static IDashboardServiceCollection AddDashboardRenderServices(this IDashboardServiceCollection configuration, Dictionary <Type, Type> renders) { IoC.RegisterServiceCollection(renders); return(configuration); }
/// <summary> /// Register services /// </summary> /// <param name="configuration"></param> /// <returns></returns> public static IDashboardServiceCollection RegisterDashboardEvents(this IDashboardServiceCollection configuration) { return(configuration); }
/// <summary> /// Register ui module /// </summary> /// <param name="services"></param> /// <returns></returns> public static IDashboardServiceCollection AddDashboardRazorUIModule(this IDashboardServiceCollection services) { services.Services.ConfigureOptions(typeof(DashBoardFileConfiguration)); return(services); }