Merge branch 'dev' into j3/feat/filter

# Conflicts:
#	Webzine.WebApplication/Areas/Administration/Controllers/CommentaireController.cs
#	Webzine.WebApplication/Controllers/ArtisteController.cs
#	Webzine.WebApplication/Controllers/RechercheController.cs
This commit is contained in:
mirage
2026-04-02 16:27:16 +02:00
27 changed files with 286 additions and 201 deletions

View File

@@ -6,7 +6,7 @@
using Webzine.WebApplication.ViewModels.Artiste;
/// <summary>
///
/// Contrôleur pour la gestion des artistes dans l'administration du webzine. Ce contrôleur gère les opérations de création, modification, suppression et affichage des artistes dans l'interface d'administration du webzine. Chaque action du contrôleur prépare un ViewModel spécifique pour la vue correspondante, permettant ainsi une séparation claire entre la logique métier et la présentation des données.
/// </summary>
public class ArtisteController : Controller
{
@@ -15,11 +15,10 @@
private readonly IArtisteRepository artisteRepository;
/// <summary>
/// Initializes a new instance of the <see cref="ArtisteController"/> class.
/// Initialise une nouvelle instance du <see cref="ArtisteController"/>. avec un service de journalisation injecté.
/// </summary>
/// <param name="logger">Service de journalisation injecté pour enregistrer les événements et les erreurs.</param>
/// <param name="artisteRepository"></param>
/// <param name="artisteRepository">Repository pour accéder aux données des artistes, injecté pour permettre les opérations de création, modification, suppression et affichage des artistes.</param>
public ArtisteController(
ILogger<ArtisteController> logger,
IArtisteRepository artisteRepository)
@@ -30,7 +29,7 @@
}
/// <summary>
/// Prend en paramètre le nom de l'artiste (ex: "fatal-bazooka"), utilise la factory pour trouver l'artiste correspondant, et affiche sa page dédiée.
/// Affiche la liste des artistes.
/// </summary>
/// <param name="nom">Le nom de l'artiste à rechercher, formaté en kebab-case (ex: "fatal-bazooka").</param>
/// <returns>La vue de l'artiste avec son ViewModel, ou une redirection vers l'accueil si le nom est vide, ou une erreur 404 si l'artiste n'est pas trouvé.</returns>
@@ -44,14 +43,12 @@
return this.RedirectToAction("Index", "Accueil");
}
// On transforme "fatal-bazooka" en "Fatal Bazooka" pour la factory
// On transforme "fatal-bazooka" en "Fatal Bazooka"
string nomPropre = System.Globalization.CultureInfo.CurrentCulture.TextInfo
.ToTitleCase(nom.Replace("-", " "));
// On appelle la factory pour obtenir l'artiste unique
var artiste = this.artisteRepository.FindByName(nomPropre);
// Check if artiste was found
if (artiste == null)
{
this.logger.LogWarning("Artiste non trouvé avec le nom : {NomArtiste}", nomPropre);

View File

@@ -10,7 +10,7 @@ namespace Webzine.WebApplication.Controllers
using Webzine.WebApplication.ViewModels.Recherche;
/// <summary>
///
/// Controller de la page de recherche d'artistes et de titres.
/// </summary>
public class RechercheController : Controller
{
@@ -19,11 +19,11 @@ namespace Webzine.WebApplication.Controllers
private readonly IArtisteRepository artisteRepository;
/// <summary>
/// Initialise une nouvelle instance de la classe <see cref="RechercheController"/>.
/// Constructeur du controller de la page de recherche d'artistes et de titres.
/// </summary>
/// <param name="logger"></param>
/// <param name="titreRepository"></param>
/// <param name="artisteRepository"></param>
/// <param name="logger">Le logger pour enregistrer les événements.</param>
/// <param name="titreRepository">Le repository pour gérer les opérations sur les titres.</param>
/// <param name="artisteRepository">Le repository pour gérer les opérations sur les artistes.</param>
public RechercheController(
ILogger<RechercheController> logger,
ITitreRepository titreRepository,

View File

@@ -39,7 +39,6 @@ namespace Webzine.WebApplication.Controllers
/// </summary>
/// <param name="id">Identifiant du titre.</param>
/// <returns>Vue des details ou 404 si introuvable.</returns>
public IActionResult Index(int id)
{
this.logger.LogInformation("Demande d'affichage du detail pour le titre ID {Id}.", id);