예제 #1
0
 private static void Seed <TContext>(SeedsBase <TContext> seeds, ILogger <IApplicationBuilder> logger)
     where TContext : class, IDatabaseContext
 {
     logger.LogInformation("Seeding database...");
     seeds.Create();
     logger.LogInformation("Database seeded");
 }
예제 #2
0
        /// <summary>
        /// Performs application startup related database configuration tasks
        /// </summary>
        /// <param name="app"></param>
        /// <param name="serviceProvider"></param>
        /// <param name="migrate">Should outstanding code-first migrations be run?</param>
        /// <param name="seeds">Optional instance of seeds to run</param>
        public static void ConfigureDatabase <TContext>(
            this IApplicationBuilder app,
            IServiceProvider serviceProvider,
            bool migrate = true,
            SeedsBase <TContext> seeds = null
            )
            where TContext : class, IDatabaseContext
        {
            var env = serviceProvider.GetService <IHostEnvironment>();

            if (env.IsEnvironment(EnvironmentConstants.TESTING))
            {
                return;
            }

            var context = serviceProvider.GetService <TContext>();
            var logger  = serviceProvider.GetService <ILogger <IApplicationBuilder> >();

            if (migrate)
            {
                Migrate(context.Database, logger);
            }

            if (seeds != null)
            {
                Seed(seeds, logger);
            }
        }