#145 : Ajout du seeder Spotify.

This commit is contained in:
Loic Masi
2026-04-02 17:59:36 +02:00
parent 9b12d2a255
commit 943fc00f3c
21 changed files with 728 additions and 351 deletions

View File

@@ -1,4 +1,4 @@
// L'erreur SA1200 (ordre des using directives) est desactivée pour Program.cs
// L'erreur SA1200 (ordre des using directives) est desactivee pour Program.cs
#pragma warning disable SA1200
using Microsoft.EntityFrameworkCore;
@@ -6,6 +6,7 @@ using Microsoft.EntityFrameworkCore;
using NLog;
using NLog.Web;
using Webzine.Business.Seeders;
using Webzine.EntitiesContext;
using Webzine.Entity;
using Webzine.Entity.Fixtures;
@@ -22,8 +23,7 @@ try
{
var builder = WebApplication.CreateBuilder(args);
// Ajoute les services necessaires pour permettre l'utilisation des
// controllers avec des vues.
// Ajoute les services necessaires pour permettre l'utilisation des controllers avec des vues.
builder.Services.AddControllersWithViews()
// Ajoute la compilation des vues lors de l'execution de l'application.
@@ -34,11 +34,14 @@ try
// NLog: Setup NLog for Dependency injection
builder.Logging.ClearProviders();
builder.Host.UseNLog();
builder.Services.Configure<SpotifySeederOptions>(builder.Configuration.GetSection("SpotifySeeder"));
builder.Services.AddHttpClient<SeedDataSpotify>();
// 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.
// En fonction de la configuration, utilise soit les repositories bases sur une base de donnees, soit les repositories bases sur des listes locales.
var repositoryType = builder.Configuration.GetValue<RepositoryType>("Repository");
var seederType = builder.Configuration.GetValue<SeederType>("Seeder");
var shouldSeed = args.Contains("--seed");
if (repositoryType == RepositoryType.Db)
{
if (builder.Environment.IsProduction())
@@ -68,7 +71,7 @@ try
}
// 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.
// Ajoute le service de compression des reponses HTTP pour reduire la taille des donnees envoyees au client et ameliorer les performances de l'application.
builder.Services.AddResponseCompression();
var app = builder.Build();
@@ -90,7 +93,9 @@ try
}
else if (seederType == SeederType.Spotify)
{
// Seed à l'aide de l'API Spotify.
var spotifySeeder = scope.ServiceProvider.GetRequiredService<SeedDataSpotify>();
var jeuDeDonnees = await spotifySeeder.GenererJeuDeDonneesAsync();
repo.SeedBaseDeDonnees(jeuDeDonnees);
}
}
}
@@ -123,8 +128,7 @@ try
app.UseResponseCompression();
// Active la possibilité de servir des fichiers statiques presents dans
// le dossier wwwroot.
// Active la possibilite de servir des fichiers statiques presents dans le dossier wwwroot.
app.UseStaticFiles(new StaticFileOptions
{
OnPrepareResponse = ctx =>
@@ -137,7 +141,7 @@ try
// Active le middleware permettant le routage des requetes entrantes.
app.UseRouting();
// Appelle les routes définies dans le dossier Extensions.
// Appelle les routes definies dans le dossier Extensions.
app.MapCustomRoutes();
app.Run();