private void MigrateDatabase(IApplicationBuilder app) { var genreConfiguration = Configuration.GetSection("Genre").Get <GenreConfiguration>(); var userConfiguration = Configuration.GetSection("User").Get <UserConfiguration>(); var movieConfiguration = Configuration.GetSection("Movie").Get <MovieConfiguration>(); //var movieGenreConfiguration = Configuration.GetSection("MovieGenre").Get<MovieGenreConfiguration>(); var permissionConfiguration = Configuration.GetSection("Permission").Get <PermissionConfiguration>(); var reservationConfiguration = Configuration.GetSection("Reservation").Get <ReservationConfiguration>(); var roomConfiguration = Configuration.GetSection("Room").Get <RoomConfiguration>(); var roomPlanConfiguration = Configuration.GetSection("RoomPlan").Get <RoomPlanConfiguration>(); var scheduleConfiguration = Configuration.GetSection("Schedule").Get <ScheduleConfiguration>(); var scheduleSlotConfiguration = Configuration.GetSection("ScheduleSlot").Get <ScheduleSlotConfiguration>(); var seatTypeConfiguration = Configuration.GetSection("SeatType").Get <SeatTypeConfiguration>(); var seatPositionConfiguration = Configuration.GetSection("SeatPosition").Get <SeatPositionConfiguration>(); var locationConfiguration = Configuration.GetSection("Location").Get <LocationConfiguration>(); var roomAssignmentConfiguration = Configuration.GetSection("RoomAssignment").Get <RoomAssignmentConfiguration>(); var roomTechnologyConfiguration = Configuration.GetSection("RoomTechnology").Get <RoomTechnologyConfiguration>(); using (var serviceScope = app.ApplicationServices.GetService <IServiceScopeFactory>().CreateScope()) { var context = serviceScope.ServiceProvider.GetRequiredService <DatabaseContext>(); context.Database.Migrate(); GenreSeed.Seed(context, genreConfiguration.Genres); UserSeed.Seed(context, userConfiguration.Users); PermissionSeed.Seed(context, permissionConfiguration.Permissions); SeatTypeSeed.Seed(context, seatTypeConfiguration.SeatTypes); LocationSeed.Seed(context, locationConfiguration.Locations); RoomTechnologySeed.Seed(context, roomTechnologyConfiguration.RoomTechnologies); } }
public async void Init(IServiceCollection services) { services.AddDbContext <LocationDbContext>(); services.AddScoped <LocationService>(); var dbContext = services.BuildServiceProvider().GetService <LocationDbContext>(); var pendingMigrations = dbContext.Database.GetPendingMigrations(); if (!pendingMigrations.Any()) { var locationSeed = new LocationSeed(); await locationSeed.SeedAsync(dbContext); } }