public static async Task Main(string[] args) { var host = CreateHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; var loggerFactory = services.GetRequiredService <ILoggerFactory>(); try { var idpContext = services.GetRequiredService <IdentityProviderDbContext>(); // TODO: Register these services // TODO: Only seed when some env var is set var entityBuilder = new IdentityProviderEntityBuilder(); var seeder = new IdentityProviderDbSeeder(idpContext, entityBuilder); await seeder.SeedAsync(loggerFactory); } catch (Exception e) { var logger = loggerFactory.CreateLogger <Program>(); logger.LogError(e.Message); } } host.Run(); }
private async Task seed(ModelBuilder builder) { var entityBuilder = new IdentityProviderEntityBuilder(); await seedClient(builder, entityBuilder); await seedUser(builder, entityBuilder); await seedEmail(builder, entityBuilder); await seedAccessToken(builder, entityBuilder); }
private async Task seedAccessToken(ModelBuilder builder, IdentityProviderEntityBuilder entityBuilder) { var accessTokens = await entityBuilder.BuildAccessTokens(); builder.Entity <AccessToken>().HasData(accessTokens); }
private async Task seedEmail(ModelBuilder builder, IdentityProviderEntityBuilder entityBuilder) { var emails = await entityBuilder.BuildEmails(); builder.Entity <Email>().HasData(emails); }
private async Task seedUser(ModelBuilder builder, IdentityProviderEntityBuilder entityBuilder) { var users = await entityBuilder.BuildUsers(); builder.Entity <User>().HasData(users); }
private async Task seedClient(ModelBuilder builder, IdentityProviderEntityBuilder entityBuilder) { var clients = await entityBuilder.BuildClients(); builder.Entity <Client>().HasData(clients); }