public void Delete(Titre titre) { Factory.Commentaires.RemoveAll(c => c.IdTitre == titre.IdTitre); //pourrait créer des problèmes si un autre titre recuperait l'id du titre supprimé Factory.Artistes.ForEach(a => a.Titres.Remove(titre)); Factory.Styles.ForEach(s => s.TitresStyles.RemoveAll(ts => ts.Titre == titre)); //enlève tout les liens entre les styles et le titre Factory.Titres.Remove(titre); }
public void Add(Titre titre) { titre.TitresStyles.ForEach(ts => ts.Titre = titre);//ajoute le titre à ses styles titre.IdTitre = Factory.Titres.Max(t => t.IdTitre) + 1; titre.DateCreation = DateTime.Now; Factory.Titres.Add(titre); }
/// <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); }
private bool ActiverValider() { return(Photo != null && Titre != null && !Titre.Equals("") && Description != null && !Description.Equals("") && ((Tag != null && !Tag.Equals("")) || (ListeTags != null && ListeTags.Count > 0))); }
/// <summary> /// Met à jour un titre /// </summary> /// <param name="titre">Titre mis à jour</param> void ITitreRepository.Update(Titre titre) { Titre titreContext = _dbContext.Titres.Where(t => t.IdTitre == titre.IdTitre).Include(t => t.Artiste).Include(t => t.Commentaires).Include(t => t.LienStyle).ThenInclude(l => l.Style).FirstOrDefault(); Artiste artisteContext = _dbContext.Artistes.FirstOrDefault(x => x.IdArtiste == titre.IdArtiste); titreContext.IdTitre = titre.IdTitre; titreContext.Libelle = titre.Libelle; titreContext.IdArtiste = artisteContext.IdArtiste; titreContext.Artiste = artisteContext; titreContext.Chronique = titre.Chronique; titreContext.DateSortie = titre.DateSortie; titreContext.Duree = titre.Duree; titreContext.UrlEcoute = titre.UrlEcoute; titreContext.UrlJaquette = titre.UrlJaquette; titreContext.LienStyle.ToList().ForEach(s => { if (!titre.LienStyle.Any(x => x.IdStyle == s.IdStyle)) { titreContext.LienStyle.Remove(s); } }); foreach (var newStyle in titre.LienStyle) { if (!titreContext.LienStyle.Any(x => x.IdStyle == newStyle.IdStyle)) { Style style = _dbContext.Styles.FirstOrDefault(styleContext => styleContext.IdStyle == newStyle.IdStyle); titreContext.LienStyle.Add(new LienStyle { IdStyle = style.IdStyle, Style = style, IdTitre = titre.IdTitre, Titre = titreContext });; } } _dbContext.SaveChanges(); }
public IActionResult ActionLike(Titre titre) { ITitreService titreService = new TitreService(); titreService.IncrementeNbLikes(titre.IdTitre, Startup.ititreRepository); return(RedirectToAction("Index", new { id = titre.IdTitre })); }
/// <summary> /// Méthode pour ajouter un nouveau titre. /// </summary> /// <param name="titre">Le titre à ajouter.</param> public void Add(Titre titre) { var idStyles = titre.TitresStyles.Select(s => s.IdStyle); titre.TitresStyles = null; this.context.Titres.Add(titre); titre.TitresStyles = new List <TitreStyle>(); try { this.context.SaveChanges(); foreach (int idSyle in idStyles) { titre.TitresStyles.Add(new TitreStyle() { IdStyle = idSyle, IdTitre = titre.IdTitre }); } try { this.context.SaveChanges(); } catch (Exception e) { Console.WriteLine(e); } } catch (Exception e) { Console.WriteLine(e); } }
/// <summary> /// Ajoute le titre passé en paramètre à la base de données. /// </summary> /// <param name="titre"></param> public void Add(Titre titre) { titre.Artiste = _context.Artistes.FirstOrDefault(x => x.IdArtiste == titre.IdArtiste); titre.TitresStyles.ForEach(ts => { ts.Style = _context.Styles.FirstOrDefault(s => s.IdStyle == ts.IdStyle); });//Evite erreur de recréation d'objet a lier au titre à inserer _context.Titres.Add(titre); _context.SaveChanges(); }
public IActionResult Commentaire(TitreViewModel titreViewModel) { Titre titre = _titreRepository.Find(titreViewModel.IdTitre); TitreViewModel newTitreViewModel = new TitreViewModel { Titre = titre, IdTitre = titre.IdTitre }; if (ModelState.IsValid) { Commentaire commentaire = new Commentaire { Auteur = titreViewModel.NewCommentaire.Auteur, Contenu = titreViewModel.NewCommentaire.Contenu, DateCreation = DateTime.Now, IdTitre = newTitreViewModel.IdTitre, Titre = _titreRepository.Find(newTitreViewModel.IdTitre) }; _commentaireRepository.Add(commentaire); return(RedirectToAction(nameof(TitreController.Index), "Titre", new { id = titreViewModel.IdTitre })); } else { return(RedirectToAction(nameof(TitreController.Index), "Titre", new { id = titreViewModel.IdTitre })); } }
/// <summary> /// Met à jour un titre de la base de données. /// </summary> /// <param name="titre"></param> public void Update(Titre titre) { titre.Artiste = _context.Artistes.FirstOrDefault(x => x.IdArtiste == titre.IdArtiste); titre.TitresStyles.ForEach(ts => { ts.Style = _context.Styles.FirstOrDefault(s => s.IdStyle == ts.IdStyle); });//Evite erreur de recréation d'objet a lier au titre à inserer var updatetitre = _context.Titres.FirstOrDefault(t => t.IdTitre == titre.IdTitre); //L'update ne fonctionne pas en passant directement l'objet : il y a une erreur de tracking sur l'objet modifié donc on modifie directement l'objet du repository puis on sauvegarde //l'objet dans la base updatetitre.Artiste = titre.Artiste; updatetitre.Chronique = titre.Chronique; updatetitre.Commentaires = titre.Commentaires; updatetitre.DateCreation = titre.DateCreation; updatetitre.DateSortie = titre.DateSortie; updatetitre.Duree = titre.Duree; updatetitre.IdArtiste = titre.IdArtiste; updatetitre.Libelle = titre.Libelle; updatetitre.NbLectures = titre.NbLectures; updatetitre.NbLikes = titre.NbLikes; updatetitre.TitresStyles = titre.TitresStyles; updatetitre.UrlEcoute = titre.UrlEcoute; updatetitre.UrlJaquette = titre.UrlJaquette; _context.Titres.Update(updatetitre); _context.SaveChanges(); }
/// <summary> /// Return the index page to be displayed /// </summary> /// /// <returns>Return the index page</returns> /// public IActionResult Index(int id) { try { Titre t = _titreRepository.Find(id); TitreViewModel titre = new TitreViewModel() { Libelle = t.Libelle, Chronique = t.Chronique, Artiste = t.Artiste, Commentaires = t.Commentaires, TitresStyles = t.TitresStyles, UrlJaquette = t.UrlJaquette, Album = t.Album, UrlEcoute = t.UrlEcoute, DateCreation = t.DateSortie, NbLikes = t.NbLikes, IdTitre = id }; this.ViewData.Model = titre; _titreRepository.IncrementNbLectures(t); //PAGE COUNTER return(View()); } catch (Exception e) { Console.WriteLine(e); return(this.NotFound()); } }
public override int GetHashCode() { unchecked { int hashCode = (Titre != null ? Titre.GetHashCode() : 0); hashCode = (hashCode * 397) ^ Date.GetHashCode(); hashCode = (hashCode * 397) ^ (Description != null ? Description.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Lien != null ? Lien.GetHashCode() : 0); return(hashCode); } }
public IActionResult AddTitre([FromBody] Titre titre) { try { Startup.ititreRepository.Add(titre); return(Ok(JsonConvert.SerializeObject(titre))); } catch (System.Exception) { throw; } }
public IActionResult PostTitre(Titre titre) { try { _titreRepository.Add(titre); return(CreatedAtAction("GetTitre", new { id = titre.IdTitre }, titre)); } catch (Exception e) { throw; return(StatusCode(500, e)); } }
public IActionResult Like(int id) { Titre titre = _titreRepository.Find(id); TitreViewModel titreViewModel = new TitreViewModel { Titre = titre, IdTitre = id }; _titreBusiness.IncrementLike(titre); return(View(nameof(TitreController.Index), titreViewModel)); }
public IActionResult DeleteTitre(Titre titre) { try { _titreRepository.Delete(titre); return(RedirectToAction(nameof(Index))); } catch { return(View()); } }
/// <summary> /// Supprime un titre du set de données /// </summary> /// <param name="titre">Titre à supprimer</param> void ITitreRepository.Delete(Titre titre) { // Si le titre existe dans le set, suppression if (StaticFactory.Titres.Contains(titre)) { StaticFactory.LienStyles.Where(x => x.IdTitre == titre.IdTitre).ToList().ForEach(ls => StaticFactory.LienStyles.Remove(ls)); StaticFactory.Commentaires.Where(x => x.IdTitre == titre.IdTitre).ToList().ForEach(x => StaticFactory.Commentaires.Remove(x)); StaticFactory.Titres.Remove(titre); StaticFactory.UpdateBinavigabilite(); } }
public IActionResult Index(int id) { Titre titre = _titreRepository.Find(id); TitreViewModel titreViewModel = new TitreViewModel { Titre = titre, IdTitre = id }; _titreBusiness.IncrementVue(titre); return(View(titreViewModel)); }
/// <summary> /// Méthode pour modifier un titre. /// </summary> /// <param name="titre">Le titre à modifier.</param> public void Update(Titre titre) { var rank = 0; foreach (var item in FactoryTitre.Titres) { if (item.IdTitre == titre.IdTitre) { if (titre.Libelle == null) { titre.Libelle = item.Libelle; } if (titre.Chronique == null) { titre.Chronique = item.Chronique; } if (titre.Duree == 0) { titre.Duree = item.Duree; } if (titre.Artiste == null) { titre.Artiste = item.Artiste; } if (titre.DateSortie == null) { titre.DateSortie = item.DateSortie; } if (titre.UrlJaquette == null) { titre.UrlJaquette = item.UrlJaquette; } if (titre.UrlEcoute == null) { titre.UrlEcoute = item.UrlEcoute; } titre.TitresStyles = item.TitresStyles; titre.Commentaires = item.Commentaires; FactoryTitre.Titres[rank] = titre; break; } rank++; } }
public IActionResult Liker(int idTitre) { try { Titre titre = _titreRepository.Find(idTitre); _titreBussiness.LikeTitre(titre); return(Redirect("/titre/" + idTitre)); } catch (Exception e) { return(this.NotFound()); } }
public IActionResult PostTitre([FromBody] Titre titre) { try { _titreRepository.Add(titre); return(Ok(JsonConvert.DeserializeObject <Titre>(JsonConvert.SerializeObject(_titreRepository.Find(titre.IdTitre), Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore })))); } catch (Exception e) { return(StatusCode(500, e)); } }
/// <summary> /// Ajoute un Titre dans le set de données /// </summary> /// <param name="titre">Titre à ajouter</param> void ITitreRepository.Add(Titre titre) { titre.IdTitre = StaticFactory.Titres.Max(x => x.IdTitre) + 1; // Ajout du titre dans le set de données StaticFactory.Titres.Add(titre); titre.LienStyle.ToList().ForEach(ls => { ls.IdTitre = titre.IdTitre; StaticFactory.LienStyles.Add(ls); }); StaticFactory.UpdateBinavigabilite(); }
public void Update(Titre titre) { //mise a jour des propriétées du titre selectioné Factory.Titres.FirstOrDefault(t => t.IdTitre == titre.IdTitre).Artiste = titre.Artiste; Factory.Titres.FirstOrDefault(t => t.IdTitre == titre.IdTitre).IdArtiste = titre.Artiste.IdArtiste; Factory.Titres.FirstOrDefault(t => t.IdTitre == titre.IdTitre).Libelle = titre.Libelle; Factory.Titres.FirstOrDefault(t => t.IdTitre == titre.IdTitre).DateSortie = titre.DateSortie; Factory.Titres.FirstOrDefault(t => t.IdTitre == titre.IdTitre).Chronique = titre.Chronique; Factory.Titres.FirstOrDefault(t => t.IdTitre == titre.IdTitre).Duree = titre.Duree; Factory.Titres.FirstOrDefault(t => t.IdTitre == titre.IdTitre).UrlJaquette = titre.UrlJaquette; Factory.Titres.FirstOrDefault(t => t.IdTitre == titre.IdTitre).UrlEcoute = titre.UrlEcoute; Factory.Titres.FirstOrDefault(t => t.IdTitre == titre.IdTitre).TitresStyles = titre.TitresStyles; Factory.Titres.FirstOrDefault(t => t.IdTitre == titre.IdTitre).NbLectures = titre.NbLectures; Factory.Titres.FirstOrDefault(t => t.IdTitre == titre.IdTitre).NbLikes = titre.NbLikes; }
public IActionResult EditTitre(int id, Titre titre) { if (id != titre.IdTitre) { return(BadRequest()); } try { _titreRepository.Update(titre); return(Ok()); } catch (Exception e) { return(StatusCode(500, e)); } }
public IActionResult Delete(int id) { try { Titre titre = _titreRepository.Find(id); TitresViewModel vm = new TitresViewModel { IdTitre = titre.IdTitre, NomTitre = titre.Libelle }; return(this.View(nameof(TitresController.Delete), vm)); } catch (NullReferenceException e) { return(RedirectToAction(nameof(TitresController.Index), "Titres", new { area = "Administration" })); } }
public IActionResult ActionAdd(Titre titre, List <Style> styles) { var stylesToAdd = styles.Where(s => s.CheckboxAnswer).ToList();//retire tous les styles ou la checkbox n'est pas coché stylesToAdd.ForEach(s => titre.TitresStyles.Add(new LienTitreStyle { Style = s, IdStyle = s.IdStyle, Titre = titre, IdTitre = titre.IdTitre })); titre.DateCreation = DateTime.Now; titre.Artiste = Startup.iartisteRepository.Find(titre.IdArtiste); if (titre.IdTitre == 0) { Startup.ititreRepository.Add(titre); return(RedirectToAction("Index")); } else { return(ActionEdit(titre)); } }
/// <summary> /// Met à jour un titre /// </summary> /// <param name="titre">Titre mis à jour</param> void ITitreRepository.Update(Titre titre) { // Si l'artiste existe bien if (!StaticFactory.Titres.FirstOrDefault(a => a.IdTitre == titre.IdTitre).Equals(default(Titre))) { Titre titreStatic = StaticFactory.Titres.FirstOrDefault(a => a.IdTitre == titre.IdTitre); titreStatic.IdArtiste = titre.IdArtiste; titreStatic.Artiste = titre.Artiste; titreStatic.Libelle = titre.Libelle; titreStatic.Album = titre.Album; titreStatic.LienStyle = titre.LienStyle; titreStatic.UrlEcoute = titre.UrlEcoute; titreStatic.UrlJaquette = titre.UrlJaquette; titreStatic.Chronique = titre.Chronique; titreStatic.DateSortie = titre.DateSortie; titreStatic.Duree = titre.Duree; StaticFactory.LienStyles.RemoveAll(x => x.IdTitre == titre.IdTitre); StaticFactory.LienStyles.AddRange(titre.LienStyle); } }
/// <summary> /// Ajoute un Titre dans le set de données /// </summary> /// <param name="titre">Titre à ajouter</param> void ITitreRepository.Add(Titre titre) { Artiste artisteContext = _dbContext.Artistes.FirstOrDefault(x => x.IdArtiste == titre.IdArtiste); titre.IdArtiste = artisteContext.IdArtiste; titre.Artiste = artisteContext; List <LienStyle> liensStyle = new List <LienStyle>(); foreach (var newStyle in titre.LienStyle) { Style style = _dbContext.Styles.FirstOrDefault(styleContext => styleContext.IdStyle == newStyle.IdStyle); liensStyle.Add(new LienStyle { IdStyle = style.IdStyle, Style = style, IdTitre = titre.IdTitre, Titre = titre });; } titre.LienStyle.Clear(); titre.LienStyle = liensStyle; _dbContext.Titres.Add(titre); _dbContext.SaveChanges(); }
public IActionResult Edit(TitleViewModel titreVM) { try { Titre titre = _titreRepository.Find(titreVM.Titre.IdTitre); titre.Libelle = titreVM.Titre.Libelle; titre.UrlEcoute = titreVM.Titre.UrlEcoute; titre.UrlJaquette = titreVM.Titre.UrlJaquette; titre.Chronique = titreVM.Titre.Chronique; titre.Album = titreVM.Titre.Album; titre.DateSortie = titreVM.Titre.DateSortie; titre.IdArtiste = titreVM.Titre.IdArtiste; titre.Duree = titreVM.Titre.Duree; titre.TitresStyles = new List <TitreStyle>(); if (titreVM.StylesChecked != null) { foreach (int idStyle in titreVM.StylesChecked) { Style style = _styleRepository.Find(idStyle); if (style != null) { TitreStyle titreStyle = new TitreStyle() { IdStyle = idStyle, IdTitre = titreVM.Titre.IdTitre }; titre.TitresStyles.Add(titreStyle); } } } _titreRepository.Update(titre); return(RedirectToAction(nameof(Index))); } catch (Exception e) { return(RedirectToAction(nameof(Index))); } }
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)); } }