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(); }
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) { //Instancia del host que va a ejecutar la aplicación que es el WebApi: var host = CreateHostBuilder(args).Build(); //Creación del using var scope: using (var scope = host.Services.CreateScope()) { //Provider que va a permitir ejecutar la migración y instanciar el DbContext: var services = scope.ServiceProvider; //Instanciar el LoggerFactory para imprimir los errores que puedan ocurrir durante las migraciones: var loggerFactory = services.GetRequiredService <ILoggerFactory>(); try { //Invocación del DBContext: var context = services.GetRequiredService <MarketDbContext>(); //Ejecución de la migración: await context.Database.MigrateAsync(); //Ejecutar la carga de los datos de los archivos Json: await MarketDbContextData.CargarDataAsync(context, loggerFactory); } catch (Exception ex) { //Imprimir los errores en caso de que existiera errores: var logger = loggerFactory.CreateLogger <Program>(); logger.LogError(ex, "Errores en el proceso de migración"); } } //Ejecución del Host: host.Run(); }