using Microsoft.AspNetCore.Mvc; using Webzine.Entity; using Webzine.Entity.Fixtures; using Webzine.Repository.Contracts; 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 IArtisteRepository _artisteRepository; private readonly List _artistes = new List(); public ArtisteController(ILogger logger, IArtisteRepository artisteRepository) { this._logger = logger; this._logger.LogDebug(1, "initialisation du ArtisteController d'administration"); this._artisteRepository = artisteRepository; this._artistes.AddRange(this._artisteRepository.FindAll()); } /// /// 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 = this._artistes.OrderBy(t => t.Nom).ToList(); 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 = this._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 = this._artistes.First(t => t.IdArtiste == id); var model = new AdminArtisteForm { Id = id, Nom = artiste.Nom, Biographie = artiste.Biographie }; return View(model); } }