#26 Modification des pages CRUD d'artiste admin en utilisant la DataFactory et un nouveau ViewModel pour les formulaires. Navigation entre les vues et le controlleur mise en place avec un id en parametres. Tri des artistes par ordre alphabetique déplacé dans le controlleur.

This commit is contained in:
josephine.vetu
2026-03-11 22:30:04 +01:00
parent 3e7468575d
commit 5e78921c7c
7 changed files with 177 additions and 34 deletions

View File

@@ -12,53 +12,86 @@ public class ArtisteController : Controller
{
// Injection du logger via le constructeur
private readonly ILogger<ArtisteController> _logger;
private readonly List<Artiste> _artistes;
public ArtisteController(ILogger<ArtisteController> logger)
{
_logger = logger;
this._logger.LogDebug(1, "initialisation du ArtisteController d'administration");
var factory = new DataFactory();
_artistes = factory.GenerateArtists(10);
}
/// <summary>
/// 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 via un objet GroupeArtisteViewModel.
/// </summary>
/// <returns></returns>
/// <returns>Redirection.</returns>
public IActionResult Index()
{
var nomsArtistes = new List<string> { "The Beatles", "Théa", "Thédora", "Ricchi E Poveri", "Bad Bunny", "horsegiirL" };
List<Artiste> artistes = new List<Artiste>();
foreach (var nom in nomsArtistes)
{
Artiste artiste = ArtisteFactory.SeedArtisteByName(nom);
artistes.Add(artiste);
}
var _artistes_ordre = _artistes.OrderBy(t => t.Nom).ToList();
_logger.LogInformation("Initialisation du contrôleur TitreController pour l'Administration.");
GroupeArtisteViewModel groupeArtisteModel = new GroupeArtisteViewModel
{
Artistes = artistes
Artistes = _artistes_ordre
};
return View(groupeArtisteModel);
}
/// <summary>
/// Renvoie à la page modifier un artiste.
/// Méthode vide pour le moment.
/// Renvoie à la page pour créer un artiste.
/// </summary>
/// <returns></returns>
public IActionResult Edit()
/// <returns>Redirection.</returns>
public IActionResult Create()
{
return View();
var model = new AdminArtisteForm
{
Id = 0,
Nom = string.Empty,
Biographie = string.Empty
};
return View(model);
}
/// <summary>
/// Renvoie à la page modifier un artiste.
/// </summary>
/// <param name="id">L'identifiant de l'artiste à modifier. </param>
/// <returns>Redirection.</returns>
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);
}
/// <summary>
/// Renvoie à la page supprimer un artiste.
/// Méthode vide pour le moment.
/// </summary>
/// <returns></returns>
public IActionResult Delete()
/// <param name="id">L'identifiant de l'artiste à supprimer. </param>
/// <returns>Redirection.></returns>
public IActionResult Delete(int id)
{
return View();
var artiste = _artistes.First(t => t.IdArtiste == id);
var model = new AdminArtisteForm
{
Id = id,
Nom = artiste.Nom,
Biographie = artiste.Biographie
};
return View(model);
}
}