public static async Task Main(string[] args) { var host = CreateHostBuilder(args).Build(); //Instancia del host que va ejecutar la aplicación, que es WebApi using (var scope = host.Services.CreateScope()) //Para encapsular la lógica de migración { var services = scope.ServiceProvider; var loggerFactory = services.GetRequiredService <ILoggerFactory>(); //Para poder imprimir Errores try { var context = services.GetRequiredService <MarketDbContext>(); await context.Database.MigrateAsync(); await MarketDbContextData.CargarDataAsync(context, loggerFactory); var userManager = services.GetRequiredService <UserManager <Usuario> >(); var roleManager = services.GetRequiredService <RoleManager <IdentityRole> >(); var identityContext = services.GetRequiredService <SeguridadDbContext>(); await identityContext.Database.MigrateAsync(); await SeguridadDbContextData.SeedUser(userManager, roleManager); } catch (Exception e) { var logger = loggerFactory.CreateLogger <Program>(); logger.LogError(e, "Error en el proceso de migración"); } } host.Run(); }
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 context = services.GetRequiredService <MarketDbContext>(); await context.Database.MigrateAsync(); await MarketDbContextData.CargarDataAsync(context, loggerFactory); var userManager = services.GetRequiredService <UserManager <Usuario> >(); var identityContext = services.GetRequiredService <SeguridadDbContext>(); await identityContext.Database.MigrateAsync(); await SeguridadDbContextData.SeedUserAsync(userManager); } catch (Exception e) { var logger = loggerFactory.CreateLogger <Program>(); logger.LogError(e, "Errores en el proceso de migracion"); } } host.Run(); }