using GameList.Data; using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore; var builder = WebApplication.CreateBuilder(args); var dataDirectory = Path.Combine(builder.Environment.ContentRootPath, "App_Data"); Directory.CreateDirectory(dataDirectory); var configuredConnection = builder.Configuration.GetConnectionString("Default"); var dbPath = Path.Combine(dataDirectory, "gamelist.db"); var connectionBuilder = new SqliteConnectionStringBuilder(); if (string.IsNullOrWhiteSpace(configuredConnection)) { connectionBuilder.DataSource = dbPath; } else { connectionBuilder = new SqliteConnectionStringBuilder(configuredConnection); if (connectionBuilder.DataSource.Contains("App_Data", StringComparison.OrdinalIgnoreCase)) { var fileName = Path.GetFileName(connectionBuilder.DataSource); connectionBuilder.DataSource = Path.Combine(dataDirectory, fileName); } else if (!Path.IsPathRooted(connectionBuilder.DataSource)) { connectionBuilder.DataSource = Path.GetFullPath(connectionBuilder.DataSource, dataDirectory); } } var connectionString = connectionBuilder.ToString(); builder.Services.AddDbContext(options => options.UseSqlite(connectionString)); var app = builder.Build(); app.UseDefaultFiles(); app.UseStaticFiles(); app.MapGet("/health", () => Results.Ok(new { status = "ok" })); app.Run();