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/ViewModels/Artiste/ArtisteCreateViewModel.cs b/Webzine.WebApplication/Areas/Administration/ViewModels/Artiste/ArtisteCreateViewModel.cs new file mode 100644 index 0000000..1d4cb45 --- /dev/null +++ b/Webzine.WebApplication/Areas/Administration/ViewModels/Artiste/ArtisteCreateViewModel.cs @@ -0,0 +1,12 @@ +namespace Webzine.WebApplication.Areas.Administration.ViewModels.Artiste +{ + using System.ComponentModel.DataAnnotations; + + public class ArtisteCreateViewModel + { + [Required] + public string Nom { get; set; } + + public string Biographie { get; set; } + } +} \ No newline at end of file diff --git a/Webzine.WebApplication/Areas/Administration/ViewModels/Artiste/ArtisteEditViewModel.cs b/Webzine.WebApplication/Areas/Administration/ViewModels/Artiste/ArtisteEditViewModel.cs new file mode 100644 index 0000000..0625935 --- /dev/null +++ b/Webzine.WebApplication/Areas/Administration/ViewModels/Artiste/ArtisteEditViewModel.cs @@ -0,0 +1,15 @@ +namespace Webzine.WebApplication.Areas.Administration.ViewModels.Artiste +{ + using System.ComponentModel.DataAnnotations; + + public class ArtisteEditViewModel + { + [Required] + public int Id { get; set; } + + [Required] + public string Nom { get; set; } + + public string Biographie { get; set; } + } +} \ No newline at end of file diff --git a/Webzine.WebApplication/Areas/Administration/Views/Artiste/Create.cshtml b/Webzine.WebApplication/Areas/Administration/Views/Artiste/Create.cshtml index 67e48be..38f842b 100644 --- a/Webzine.WebApplication/Areas/Administration/Views/Artiste/Create.cshtml +++ b/Webzine.WebApplication/Areas/Administration/Views/Artiste/Create.cshtml @@ -1,11 +1,41 @@ -@model Webzine.WebApplication.Areas.Administration.ViewModels.Artiste.AdminArtisteForm +@model Webzine.WebApplication.Areas.Administration.ViewModels.Artiste.ArtisteCreateViewModel

Créer un artiste


+
+ +
+ +
+ +
+
- + +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ + Retour à l'administration des artistes + +
\ No newline at end of file diff --git a/Webzine.WebApplication/Areas/Administration/Views/Artiste/Edit.cshtml b/Webzine.WebApplication/Areas/Administration/Views/Artiste/Edit.cshtml index c5cf9d2..8f75e10 100644 --- a/Webzine.WebApplication/Areas/Administration/Views/Artiste/Edit.cshtml +++ b/Webzine.WebApplication/Areas/Administration/Views/Artiste/Edit.cshtml @@ -1,4 +1,4 @@ -@model Webzine.WebApplication.Areas.Administration.ViewModels.Artiste.AdminArtisteForm +@model Webzine.Entity.Artiste

Editer un artiste

@@ -6,7 +6,7 @@
- + diff --git a/Webzine.WebApplication/Areas/Administration/Views/Artiste/_Form.cshtml b/Webzine.WebApplication/Areas/Administration/Views/Artiste/_Form.cshtml index f5c84bc..960ad3f 100644 --- a/Webzine.WebApplication/Areas/Administration/Views/Artiste/_Form.cshtml +++ b/Webzine.WebApplication/Areas/Administration/Views/Artiste/_Form.cshtml @@ -1,4 +1,4 @@ -@model Webzine.WebApplication.Areas.Administration.ViewModels.Artiste.AdminArtisteForm +@model Webzine.Entity.Artiste
@@ -17,8 +17,6 @@
- -