public void ConfigureServices(IServiceCollection services) { services.AddMvc(options => { if (!Environment.IsEnvironment("Localhost")) { options.Filters.Add(new RequireHttpsAttribute()); } }) .AddJsonOptions(options => { options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; }); services.AddAuthorization(options => { void ActionWithContext(Action <ConfigStoreContext> action) { using (ConfigStoreContext context = services.BuildServiceProvider().GetService <ConfigStoreContext>()) { action(context); } } options.AddPolicy("application", builder => { builder.Requirements.Add(new AuthorizationApplicationHandler(ActionWithContext)); }); options.AddPolicy("service", builder => { builder.Requirements.Add(new AuthorizationServiceHandler(ActionWithContext)); }); options.AddPolicy("environment", builder => { builder.Requirements.Add(new AuthorizationEnvironmentHandler(ActionWithContext)); }); }); services.AddAuthentication(options => options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(); services.AddSwaggerGen(options => { options.SwaggerDoc("v1", new Info { Title = "Storage API", Version = "v1" }); options.OperationFilter <SwaggerAuthorizationHeaderParameters>(); }); services.AddSingleton(Configuration); services.AddSingleton(Environment); services.AddDbContext <ConfigStoreContext>( options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddScoped(provider => new KeyVaultClient(GetAccessToken)); services.AddSingleton(Configuration); services.AddScoped <ConfigClient>(); services.AddScoped <DefaultDataInitializer>(); services.AddScoped(typeof(RenameModelActionHandler <>)); services.AddScoped(typeof(CanAddModelActionHandler <>)); }
public ApplicationController(ConfigStoreContext context, ConfigClient client, DefaultDataInitializer defaultDataInitializer, RenameModelActionHandler <Application> renameModelActionHandler, CanAddModelActionHandler <Application> canAddModelActionHandler) { _context = context; _client = client; _defaultDataInitializer = defaultDataInitializer; _renameModelActionHandler = renameModelActionHandler; _canAddModelActionHandler = canAddModelActionHandler; }
public EnvironmentController(ConfigStoreContext context, ConfigClient client, DefaultDataInitializer defaultDataInitializer, RenameModelActionHandler <ServiceEnvironment> renameModelActionHandler, CanAddModelActionHandler <ServiceEnvironment> canAddModelActionHandler) { _context = context; _client = client; _defaultDataInitializer = defaultDataInitializer; _renameModelActionHandler = renameModelActionHandler; _canAddModelActionHandler = canAddModelActionHandler; }
private static async Task InitializeDbAsync(IApplicationBuilder app) { using (IServiceScope serviceScope = app.ApplicationServices.GetService <IServiceScopeFactory>().CreateScope()) { ConfigStoreContext context = serviceScope.ServiceProvider.GetRequiredService <ConfigStoreContext>(); context.Database.SetCommandTimeout(TimeSpan.FromMinutes(5)); await context.Database.MigrateAsync(); ConfigClient client = serviceScope.ServiceProvider.GetRequiredService <ConfigClient>(); await client.ClearAsync(); DbInitializer initializer = new DbInitializer(context, client); await initializer.SeedAsync(); } }
public RenameModelActionHandler(ConfigStoreContext context) { _context = context; }
public CanAddModelActionHandler(ConfigStoreContext context) { _context = context; }