Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 private static void Check(CrocoApplicationBuilder appBuilder)
 {
     new EFCrocoApplicationRegistrator(appBuilder).RegiterIfNeedEFDataCoonection <EccDbContext>();
     DbFileManagerServiceCollectionExtensions.CheckForDbFileManager(appBuilder.Services);
 }