예제 #1
0
        public override void ConfigureServices(IServiceCollection services)
        {
            base.ConfigureServices(services);

            services.AddOptions();

            Logger.LogInformation(configuration["MongoSettings:ConnectionString"]);


            var envConnectionString = Environment.GetEnvironmentVariable("MongoSettings:ConnectionString") ?? Environment.GetEnvironmentVariable("MongoSettingsConnectionString") ?? configuration["MongoSettings:ConnectionString"];
            var envDBName           = Environment.GetEnvironmentVariable("MongoSettings:DBName") ?? Environment.GetEnvironmentVariable("MongoSettingsDBName") ?? configuration["MongoSettings:DBName"];



            MongoSettings instance = new MongoSettings
            {
                ConnectionString = envConnectionString,
                DBName           = envDBName
            };

            IOptions <MongoSettings> settingsOptions = Options.Create <MongoSettings>(instance);
            MongoService             mongoService    = new MongoService(settingsOptions, Logger);
            CRUDService crudService = new CRUDService(mongoService, settingsOptions);

            Engine.Service = crudService;

            services.AddSingleton <MongoService>(mongoService);
            services.AddSingleton <CRUDService>(crudService);
            services.AddSingleton <AppEngine>(Engine);
            services.AddHttpContextAccessor();

            crudService.EnsureCollection("_configuration");

            Engine.Plugins.ForEach(x => SetConfiguration(x, crudService));

            crudService.EnsureCollection("_schema");
        }