using Microsoft.AspNetCore.Mvc; using Webzine.Entity; using Webzine.Entity.Fixtures; using Webzine.WebApplication.Areas.Administration.ViewModels.Artiste; namespace Webzine.WebApplication.Areas.Administration.Controllers; [Area("Administration")] public class ArtisteController : Controller { // Injection du logger via le constructeur private readonly ILogger _logger; private readonly List _artistes; public ArtisteController(ILogger logger) { this._logger = logger; this._logger.LogDebug(1, "initialisation du ArtisteController d'administration"); var factory = new DataFactory(); _artistes = factory.GenerateArtists(10); } /// /// Affiche la liste des artistes. Pour l'instant, les artistes sont générés à partir de noms prédéfinis via la méthode SeedArtisteByName de la classe ArtisteFactory. /// Chaque artiste est ensuite ajouté à une liste d'artistes qui est passée à la vue. /// /// Redirection. public IActionResult Index() { var _artistes_ordre = _artistes.OrderBy(t => t.Nom).ToList(); this._logger.LogInformation("Initialisation du contrôleur TitreController pour l'Administration."); return View(_artistes_ordre); } /// /// Renvoie à la page pour créer un artiste. /// /// Redirection. public IActionResult Create() { var model = new AdminArtisteForm { Id = 0, Nom = string.Empty, Biographie = string.Empty }; return View(model); } /// /// Renvoie à la page modifier un artiste. /// /// L'identifiant de l'artiste à modifier. /// Redirection. public IActionResult Edit(int id) { var artiste = _artistes.First(t => t.IdArtiste == id); var model = new AdminArtisteForm { Id = artiste.IdArtiste, Nom = artiste.Nom, Biographie = artiste.Biographie }; return View(model); } /// /// Renvoie à la page supprimer un artiste. /// /// L'identifiant de l'artiste à supprimer. /// Redirection.> public IActionResult Delete(int id) { var artiste = _artistes.First(t => t.IdArtiste == id); var model = new AdminArtisteForm { Id = id, Nom = artiste.Nom, Biographie = artiste.Biographie }; return View(model); } }