Merge remote-tracking branch 'origin/j2/refactor/controler-style-titre' into j2/ajout_repo

This commit is contained in:
Loic Masi
2026-03-26 13:57:56 +01:00
45 changed files with 1627 additions and 6747 deletions

View File

@@ -31,18 +31,49 @@ try
builder.Services.AddDbContext<WebzineDbContext>(options =>
options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")));
// Ajout d'un seeder pour la base de données
// Ajout d'un seeder pour la base de donn<EFBFBD>es
builder.Services.AddScoped<DbEntityRepository>();
// NLog: Setup NLog for Dependency injection
builder.Logging.ClearProviders();
builder.Host.UseNLog();
// En fonction de la configuration, utilise soit les repositories basés sur une base de données, soit les repositories basés sur des listes locales.
bool useDatabase = builder.Configuration.GetValue<bool>("UseDatabase");
if (useDatabase)
{
builder.Services.AddScoped<ITitreRepository, DbTitreRepository>();
builder.Services.AddScoped<IStyleRepository, DbStyleRepository>();
builder.Services.AddScoped<IArtisteRepository, DbArtisteRepository>();
//builder.Services.AddScoped<ICommentaireRepository, DbCommentaireRepository>();
}
else
{
builder.Services.AddScoped<ITitreRepository, LocalTitreRepository>();
builder.Services.AddScoped<IStyleRepository, LocalStyleRepository>();
builder.Services.AddScoped<IArtisteRepository, LocalArtisteRepository>();
//builder.Services.AddScoped<ICommentaireRepository, LocalCommentaireRepository>();
}
// https://learn.microsoft.com/fr-fr/aspnet/core/performance/response-compression?view=aspnetcore-10.0#configuration
// Ajoute le service de compression des réponses HTTP pour réduire la taille des données envoyées au client et améliorer les performances de l'application.
builder.Services.AddResponseCompression();
var app = builder.Build();
app.UseResponseCompression();
// Active la possibilite de servir des fichiers statiques presents dans
// le dossier wwwroot.
app.UseStaticFiles();
app.UseStaticFiles(new StaticFileOptions
{
OnPrepareResponse = ctx =>
{
// https://learn.microsoft.com/fr-fr/aspnet/core/fundamentals/static-files?view=aspnetcore-10.0#set-http-response-headers
ctx.Context.Response.Headers.Append("Cache-Control", "public, max-age=31536000");
},
});
using (var scope = app.Services.CreateScope())
{
@@ -71,12 +102,12 @@ try
}
catch (Exception exception)
{
// NLog: attrape les exceptions non gerees et les logge.
// NLog: attrape les exceptions non gerees et les logger.
logger.Error(exception, "Stopped program because of exception");
throw;
}
finally
{
// Assure que NLog flush tous les messages de log avant de fermer l'application.
NLog.LogManager.Shutdown();
LogManager.Shutdown();
}