/// <summary> /// Intialize la liste de style en cochant si edit /// </summary> private void InitializeStyleList(ManageTitresViewModel manage) { //Pour chaque style, si c'est edit on met la valeur à true si le titre est dans ce style sinon false manage.Styles = _styleRepository.FindAll().Select(vm => new StylesViewModel { IdStyle = vm.IdStyle, Libelle = vm.Libelle, Checked = (manage.Titre.Styles.Any(x => x.IdStyle == vm.IdStyle)) ? true : false }).ToList(); }
/// <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 ManageTitresViewModel InitializeList(int?id) { ManageTitresViewModel titresMTVM = new ManageTitresViewModel(); titresMTVM.Titre = new TitresViewModel { IdTitre = (id.HasValue) ? (int)id : 0, DateSortie = DateTime.Now, Styles = new List <StylesViewModel>() }; if (id.HasValue) { //Si la valeur id n'est pas égal à null, la propriété Titre est affecté. Titre titre = _titreRepository.Find((int)id); titresMTVM.Titre.Styles = titre.LienStyle.Select(x => new StylesViewModel { IdStyle = x.IdStyle }).ToList(); titresMTVM.Titre.Album = titre.Album; titresMTVM.Titre.IdArtiste = titre.IdArtiste; titresMTVM.Titre.NomTitre = titre.Libelle; titresMTVM.Titre.NbLectures = titre.NbLectures; titresMTVM.Titre.NbLikes = titre.NbLikes; titresMTVM.Titre.NomArtiste = titre.Artiste.Nom; titresMTVM.Titre.Duree = titre.Duree; titresMTVM.Titre.DateSortie = titre.DateSortie; titresMTVM.Titre.Chronique = titre.Chronique; titresMTVM.Titre.UrlEcoute = titre.UrlEcoute; titresMTVM.Titre.UrlJaquette = titre.UrlJaquette; } InitializeArtistesList(titresMTVM); InitializeStyleList(titresMTVM); return(titresMTVM); }
/// <summary> /// Intialize la liste d'artiste /// </summary> private void InitializeArtistesList(ManageTitresViewModel 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.Artistes = new SelectList(_artisteRepository.FindAll().Select(vm => new ArtisteViewModel { IdArtiste = vm.IdArtiste, NomArtiste = vm.Nom }), nameof(ArtisteViewModel.IdArtiste), nameof(ArtisteViewModel.NomArtiste), _artisteRepository.Find(manage.Titre.IdArtiste)); }
public IActionResult ManagePOST(ManageTitresViewModel manageTitresViewModel) { if (ModelState.IsValid) { //Get selected and affect them in new list of style List <Style> styles = new List <Style>(); Titre titre = new Titre((manageTitresViewModel.Titre.IdTitre != 0) ? manageTitresViewModel.Titre.IdTitre : 0, manageTitresViewModel.Titre.IdArtiste, _artisteRepository.Find(manageTitresViewModel.Titre.IdArtiste), manageTitresViewModel.Titre.Chronique, manageTitresViewModel.Titre.Album, manageTitresViewModel.Titre.DateSortie, manageTitresViewModel.Titre.Duree, manageTitresViewModel.Titre.NomTitre, manageTitresViewModel.Titre.NbLectures, manageTitresViewModel.Titre.NbLikes, manageTitresViewModel.Titre.UrlEcoute, manageTitresViewModel.Titre.UrlJaquette); var liens = Request.Form["style.IdStyle"].Select(id => new LienStyle { IdTitre = (manageTitresViewModel.Titre.IdTitre != 0) ? manageTitresViewModel.Titre.IdTitre : 0, Titre = titre, IdStyle = Convert.ToInt32(id), Style = _styleRepository.Find(Convert.ToInt32(id)) }).ToList(); titre.LienStyle = liens; if (manageTitresViewModel.Titre.IdTitre != 0) { _titreRepository.Update(titre); } else { _titreRepository.Add(titre); } return(RedirectToAction(nameof(TitresController.Index), "Titres", new { area = "Administration" })); } else { InitializeArtistesList(manageTitresViewModel); //Get already selected and affect them in new list of styleviewmodel to display them again manageTitresViewModel.Titre.Styles = Request.Form["style.IdStyle"].ToList().Select(vm => { Style style = _styleRepository.Find(Convert.ToInt32(vm)); return(new StylesViewModel { IdStyle = style.IdStyle, Libelle = style.Libelle, Checked = true }); }).ToList(); InitializeStyleList(manageTitresViewModel); return(this.View(nameof(TitresController.Manage), manageTitresViewModel)); } }