Chess.Data.Seeding.ApplicationDbContextSeeder.SeedAsync C# (CSharp) Method

SeedAsync() public method

public SeedAsync ( ApplicationDbContext dbContext, IServiceProvider serviceProvider ) : Task
dbContext ApplicationDbContext
serviceProvider IServiceProvider
return Task
        public async Task SeedAsync(ApplicationDbContext dbContext, IServiceProvider serviceProvider)
        {
            if (dbContext == null)
            {
                throw new ArgumentNullException(nameof(dbContext));
            }

            if (serviceProvider == null)
            {
                throw new ArgumentNullException(nameof(serviceProvider));
            }

            var logger = serviceProvider.GetService<ILoggerFactory>().CreateLogger(typeof(ApplicationDbContextSeeder));

            var seeders = this.GetInstances<ISeeder>();

            foreach (var seeder in seeders)
            {
                await seeder.SeedAsync(dbContext, serviceProvider);
                await dbContext.SaveChangesAsync();
                logger.LogInformation($"Seeder {seeder.GetType().Name} done.");
            }
        }
ApplicationDbContextSeeder