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"); }