diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/ArtisteController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/ArtisteController.cs index 7df257a..e6ad7e5 100644 --- a/Webzine.WebApplication/Areas/Administration/Controllers/ArtisteController.cs +++ b/Webzine.WebApplication/Areas/Administration/Controllers/ArtisteController.cs @@ -50,14 +50,37 @@ public class ArtisteController : Controller /// Redirection. public IActionResult Create() { - var model = new AdminArtisteForm + return this.View(); + } + + /// + /// Formulaire de création d'un artiste. + /// + /// Paramètre nécessaire pour la création d'un artiste. + /// Redirection sur la page Index. + [HttpPost] + public IActionResult Create(ArtisteCreateViewModel model) + { + // vérifier si les données sont corrects. + if (!this.ModelState.IsValid) { - Id = 0, - Nom = string.Empty, - Biographie = string.Empty, + // Passer model en paramètre afin que + // l'utilisateur conserve sa saissie. + return this.View(model); + } + + // Créer un objet Artiste avecc les paramètres. + var artiste = new Artiste + { + Nom = model.Nom, + Biographie = model.Biographie, }; - return this.View(model); + // Persister les données. + this.artisteRepository.Add(artiste); + + // Renvoyer sur la page Index. + return this.RedirectToAction("Index"); } /// @@ -69,14 +92,37 @@ public class ArtisteController : Controller { var artiste = this.artisteRepository.Find(id); - var model = new AdminArtisteForm + if (artiste == null) { - Id = artiste.IdArtiste, - Nom = artiste.Nom, - Biographie = artiste.Biographie, + return this.RedirectToAction("Index"); + } + + return this.View(artiste); + } + + /// + /// Traitement du formulaire de modification d'un artiste. + /// + /// Paramètre d'un artiste. + /// Redirection sur Index. + [HttpPost] + public IActionResult Edit(ArtisteEditViewModel model) + { + var artiste = new Artiste + { + IdArtiste = model.Id, + Nom = model.Nom, + Biographie = model.Biographie, }; - return this.View(model); + if (!this.ModelState.IsValid) + { + return this.View(artiste); + } + + this.artisteRepository.Update(artiste); + + return this.RedirectToAction("Index"); } /// diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs index e6741f9..1283fd0 100644 --- a/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs +++ b/Webzine.WebApplication/Areas/Administration/Controllers/StyleController.cs @@ -1,109 +1,170 @@ -namespace Webzine.WebApplication.Areas.Administration.Controllers -{ - using Microsoft.AspNetCore.Mvc; +namespace Webzine.WebApplication.Areas.Administration.Controllers; - using Webzine.Repository.Contracts; - using Webzine.WebApplication.Areas.Administration.ViewModels.Style; +using Microsoft.AspNetCore.Mvc; + +using Webzine.Entity; +using Webzine.Repository.Contracts; +using Webzine.WebApplication.Areas.Administration.ViewModels.Style; + +/// +/// Controleur pour la gestion des styles dans l'administration du webzine. +/// +[Area("Administration")] +public class StyleController : Controller +{ + private readonly ILogger logger; + private readonly IStyleRepository styleRepository; /// - /// Contrôleur pour la gestion des styles dans l'administration du webzine. + /// Initializes a new instance of the class. /// - [Area("Administration")] - public class StyleController : Controller + /// Service de journalisation injecte. + /// Repository des styles injecte. + public StyleController( + ILogger logger, + IStyleRepository styleRepository) { - private readonly ILogger logger; - private readonly IStyleRepository styleRepository; + this.logger = logger; + this.styleRepository = styleRepository; - /// - /// Initializes a new instance of the class. - /// Initialise une nouvelle instance de la classe . - /// - /// Service de journalisation injecté. - /// Repository des styles injecté. - public StyleController( - ILogger logger, - IStyleRepository styleRepository) + this.logger.LogInformation("Initialisation du controleur StyleController."); + } + + /// + /// Affiche la liste des styles dans la vue Index. + /// + /// La vue Index avec la liste des styles. + public IActionResult Index() + { + IEnumerable