using FreeTubeSync; using FreeTubeSync.Database; using FreeTubeSync.EndPoints; using Microsoft.EntityFrameworkCore; var builder = WebApplication.CreateBuilder(args); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); builder.Services.AddDbContext(options => options.UseSqlite(builder.Configuration.GetConnectionString("FreeTubeSync"))); builder.Services.AddScoped(typeof(IRepository<>), typeof(Repository<>)); // Add services to the container. var app = builder.Build(); app.MapHistoryEndpoints(); app.MapPlaylistEndpoints(); app.MapProfileEndpoints(); app.MapSearchHistoryEndpoints(); app.MapSettingEndpoints(); await using(var serviceScope = app.Services.CreateAsyncScope()) await using (var dbContext = serviceScope.ServiceProvider.GetRequiredService()) { try { await dbContext.Database.MigrateAsync(); } catch (Exception e) { await dbContext.Database.EnsureCreatedAsync(); } } app.Run();