public IActionResult ManagePOST(ManageArtistesViewModel manageArtistesViewModel) { if (ModelState.IsValid) { Artiste artiste = new Artiste { IdArtiste = (manageArtistesViewModel.Artiste.IdArtiste != 0) ? manageArtistesViewModel.Artiste.IdArtiste : 0, Biographie = manageArtistesViewModel.Artiste.Biographie, Nom = manageArtistesViewModel.Artiste.NomArtiste, IdPays = manageArtistesViewModel.Artiste.IdPays, Pays = _paysRepository.Find(manageArtistesViewModel.Artiste.IdPays), DateNaissance = manageArtistesViewModel.Artiste.DateNaissance }; if (manageArtistesViewModel.Artiste.IdArtiste != 0) { _artisteRepository.Update(artiste); } else { _artisteRepository.Add(artiste); } return(RedirectToAction(nameof(ArtistesController.Index), "Artistes", new { area = "Administration" })); } else { InitializePaysList(manageArtistesViewModel); return(this.View(nameof(ArtistesController.Manage), manageArtistesViewModel)); } }
/// <summary> /// Intialize la liste d'artiste /// </summary> private void InitializePaysList(ManageArtistesViewModel manage) { //Initialize un SelectList pour asp-for dans la vue. Le premier paramètre est la liste à convertir, le deuxième est la propriété que l'on va afficher dans la liste, le troisième est la valeur affecter à une ligne //Le dernier paramètre est égal à l'artiste du titre si c'est un edit sinon c'est égal à null manage.Pays = new SelectList(_paysRepository.FindAll().Select(vm => new Pays { IdPays = vm.IdPays, Nom = vm.Nom }), nameof(Pays.IdPays), nameof(Pays.Nom), _paysRepository.Find(manage.Artiste.IdPays)); }
/// <summary> /// Permet d'initliaze la liste d'artistes et de styles avec id du titre en paramètre si edit et null si create /// </summary> private ManageArtistesViewModel InitializeList(int?id) { ManageArtistesViewModel artistesMAVM = new ManageArtistesViewModel(); artistesMAVM.Artiste = new ArtisteViewModel { IdArtiste = (id.HasValue) ? (int)id : 0 }; if (id.HasValue) { //Si la valeur id n'est pas égal à null, la propriété Titre est affecté. Artiste artiste = _artisteRepository.Find((int)id); artistesMAVM.Artiste.NomArtiste = artiste.Nom; artistesMAVM.Artiste.Biographie = artiste.Biographie; artistesMAVM.Artiste.IdPays = artiste.IdPays; artistesMAVM.Artiste.DateNaissance = artiste.DateNaissance; } InitializePaysList(artistesMAVM); return(artistesMAVM); }