public static async Task <IServiceProvider> BuildCltAppAndGetServiceProvider() { var services = new ServiceCollection(); services.AddLogging(); services.AddScoped(srv => MySqLiteFileDatabaseExtensions.Create <CrocoInternalDbContext>(opts => new CrocoInternalDbContext(opts), "croco")); services.AddScoped(srv => MySqLiteFileDatabaseExtensions.Create <CltDbContext>(opts => new CltDbContext(opts), "clt")); var appBuilder = new CrocoApplicationBuilder(services); appBuilder.RegisterVirtualPathMapper(Directory.GetCurrentDirectory()); appBuilder.RegisterFileStorage(new CrocoFileOptions { SourceDirectory = Directory.GetCurrentDirectory(), ImgFileResizeSettings = new Dictionary <string, ImgFileResizeSetting>() }); DbFileManagerServiceCollectionExtensions.RegisterDbFileManager(appBuilder); CltLogicRegistrator.Register(appBuilder); appBuilder.CheckAndRegisterApplication <CrocoApplication>(); var srvProvider = services.BuildServiceProvider(); appBuilder.SetAppAndActivator(srvProvider); var scope = srvProvider.CreateScope(); InitializeDatabasesAsEmpty(scope); scope.ServiceProvider .GetRequiredService <ICrocoRequestContextAccessor>() .SetRequestContext(SystemCrocoExtensions.GetRequestContext()); var accountInitiator = scope.ServiceProvider .GetRequiredService <AccountInitiator>(); await accountInitiator.CreateRootUserAsync(); return(srvProvider); }
private static void Check(CrocoApplicationBuilder appBuilder) { new EFCrocoApplicationRegistrator(appBuilder).RegiterIfNeedEFDataCoonection <EccDbContext>(); DbFileManagerServiceCollectionExtensions.CheckForDbFileManager(appBuilder.Services); }