#167 : Finition du CRUD sur Artiste.
This commit is contained in:
@@ -50,14 +50,37 @@ public class ArtisteController : Controller
|
|||||||
/// <returns>Redirection.</returns>
|
/// <returns>Redirection.</returns>
|
||||||
public IActionResult Create()
|
public IActionResult Create()
|
||||||
{
|
{
|
||||||
var model = new AdminArtisteForm
|
return this.View();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Formulaire de création d'un artiste.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="model">Paramètre nécessaire pour la création d'un artiste.</param>
|
||||||
|
/// <returns>Redirection sur la page Index.</returns>
|
||||||
|
[HttpPost]
|
||||||
|
public IActionResult Create(ArtisteCreateViewModel model)
|
||||||
{
|
{
|
||||||
Id = 0,
|
// vérifier si les données sont corrects.
|
||||||
Nom = string.Empty,
|
if (!this.ModelState.IsValid)
|
||||||
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");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -69,14 +92,37 @@ public class ArtisteController : Controller
|
|||||||
{
|
{
|
||||||
var artiste = this.artisteRepository.Find(id);
|
var artiste = this.artisteRepository.Find(id);
|
||||||
|
|
||||||
var model = new AdminArtisteForm
|
if (artiste == null)
|
||||||
{
|
{
|
||||||
Id = artiste.IdArtiste,
|
return this.RedirectToAction("Index");
|
||||||
Nom = artiste.Nom,
|
}
|
||||||
Biographie = artiste.Biographie,
|
|
||||||
|
return this.View(artiste);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Traitement du formulaire de modification d'un artiste.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="model">Paramètre d'un artiste.</param>
|
||||||
|
/// <returns>Redirection sur Index.</returns>
|
||||||
|
[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");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -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; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,11 +1,41 @@
|
|||||||
@model Webzine.WebApplication.Areas.Administration.ViewModels.Artiste.AdminArtisteForm
|
@model Webzine.WebApplication.Areas.Administration.ViewModels.Artiste.ArtisteCreateViewModel
|
||||||
|
|
||||||
<h1>Créer un artiste</h1>
|
<h1>Créer un artiste</h1>
|
||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
|
|
||||||
<form asp-action="Create" method="post">
|
<form asp-action="Create" method="post">
|
||||||
|
<div class="container">
|
||||||
|
<!-- ARTISTE -->
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label class="col-md-3 col-form-label">Nom de l'artiste<span class="text-danger">*</span></label>
|
||||||
|
<div class="col-md-9">
|
||||||
|
<input asp-for="Nom" class="form-control" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<partial name="_Form" />
|
<!-- BIOGRAPHIE -->
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label class="col-md-3 col-form-label">Biographie</label>
|
||||||
|
<div class="col-md-9">
|
||||||
|
<textarea asp-for="Biographie" class="form-control" rows="5"></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- BOUTONS -->
|
||||||
|
<div class="row mt-4">
|
||||||
|
<div class="col-md-9 offset-md-3">
|
||||||
|
<button type="submit" class="btn btn-primary me-2">
|
||||||
|
Sauvegarder
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<a asp-action="Index"
|
||||||
|
class="btn text-primary">
|
||||||
|
Retour à l'administration des artistes
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
@model Webzine.WebApplication.Areas.Administration.ViewModels.Artiste.AdminArtisteForm
|
@model Webzine.Entity.Artiste
|
||||||
|
|
||||||
<h1>Editer un artiste</h1>
|
<h1>Editer un artiste</h1>
|
||||||
|
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<form asp-action="Edit" method="post">
|
<form asp-action="Edit" method="post">
|
||||||
|
|
||||||
<input type="hidden" asp-for="Id"/>
|
<input type="hidden" asp-for="IdArtiste"/>
|
||||||
|
|
||||||
<partial name="_Form" />
|
<partial name="_Form" />
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
@model Webzine.WebApplication.Areas.Administration.ViewModels.Artiste.AdminArtisteForm
|
@model Webzine.Entity.Artiste
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<!-- ARTISTE -->
|
<!-- ARTISTE -->
|
||||||
@@ -17,8 +17,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BOUTONS -->
|
<!-- BOUTONS -->
|
||||||
<div class="row mt-4">
|
<div class="row mt-4">
|
||||||
<div class="col-md-9 offset-md-3">
|
<div class="col-md-9 offset-md-3">
|
||||||
|
|||||||
Reference in New Issue
Block a user