예제 #1
0
        public static void SeedData(this IServiceScopeFactory scopeFactory, ILogger logger)
        {
            _logger = logger;

            using (var serviceScope = scopeFactory.CreateScope())
            {
                var context = serviceScope.ServiceProvider.GetService <JournalContext>();
                _userManager = serviceScope.ServiceProvider.GetService <UserManager <ApplicationUser> >();
                _roleManager = serviceScope.ServiceProvider.GetService <RoleManager <JournalRole> >();

                _logger.LogDebug("Starting database table data seeding.");

                _context = context;

                if (_context == null || _userManager == null)
                {
                    throw new ArgumentNullException("Database or identity objects are not set");
                }

                if (_context.AllMigrationsApplied())
                {
                    InitializeIdentity();
                    ApplyData(false);
                }
                else
                {
                    _logger.LogDebug("Database migrations are not correctly applied.");
                }
            }
        }