Files
secdevops-csharp-app/Program.cs
Achim H. 981201dc02
All checks were successful
Tests / Declarative: Post Actions No test results found
csharp-secdevops-pipeline-pod/pipeline/head This commit looks good
added Sqlite Integration to Program.cs
2026-05-12 12:20:18 +02:00

48 lines
1.4 KiB
C#

// Importieren des Entity Frameworks für den Zugriff auf die DB
using Microsoft.EntityFrameworkCore;
// Importieren der Klassen
using SecDevOpsLab.Data;
using SecDevOpsLab.Components;
// Initialisieren des Web Builders, der den Server und die Umgebung vorbereitet
var builder = WebApplication.CreateBuilder(args);
// Hinzufügen des Blazor Service und die Interagierbarkeit des Frontends
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents();
// Registrieren des Datenbankzugriffs (Sqlite)
builder.Services.AddDbContext<AppDbContext>(options =>
options.UseSqlite("Data Source=books.db"));
// Bauen des Webservers, der App
var app = builder.Build();
// Erstellen eines temporären Scopes
using (var scope = app.Services.CreateScope())
{
// Holen des DB Services
var db = scope.ServiceProvider.GetRequiredService<AppDbContext>();
// Erstellen der books.db automatisch sofern nicht bereits vorhanden
db.Database.EnsureCreated();
}
// Hinzufügen einer Fehlerbehandlung -> Fehler wird auf der Website angezeigt
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error", createScopeForErrors: true);
}
// Erlauben des Zugriffs auf wwwroot Dir
app.UseStaticFiles();
// Schützen vor CSRF Attacken
app.UseAntiforgery();
// Verknüpfen der Razor Seiten mit den entsprechenden URLs
app.MapRazorComponents<App>()
.AddInteractiveServerRenderMode();
// Webserver wird gestartet. Port 8080 wird eröffnet
app.Run();