예제 #1
0
        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();
        }
예제 #2
0
        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);
        }
예제 #3
0
        private async Task seedAccessToken(ModelBuilder builder, IdentityProviderEntityBuilder entityBuilder)
        {
            var accessTokens = await entityBuilder.BuildAccessTokens();

            builder.Entity <AccessToken>().HasData(accessTokens);
        }
예제 #4
0
        private async Task seedEmail(ModelBuilder builder, IdentityProviderEntityBuilder entityBuilder)
        {
            var emails = await entityBuilder.BuildEmails();

            builder.Entity <Email>().HasData(emails);
        }
예제 #5
0
        private async Task seedUser(ModelBuilder builder, IdentityProviderEntityBuilder entityBuilder)
        {
            var users = await entityBuilder.BuildUsers();

            builder.Entity <User>().HasData(users);
        }
예제 #6
0
        private async Task seedClient(ModelBuilder builder, IdentityProviderEntityBuilder entityBuilder)
        {
            var clients = await entityBuilder.BuildClients();

            builder.Entity <Client>().HasData(clients);
        }