using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Collections.ObjectModel; using System.Diagnostics; namespace Modele { /// /// Classe CollectionTitre /// public class CollectionTitre { /// /// Liste de Titrem implementant INotifyCollectionChanged et INotifyPropertyChanged au changement de la liste /// public ReadOnlyObservableCollection ListeTitre { get; private set; } readonly ObservableCollection listeTitre = new ObservableCollection(); /// /// Construit une CollectionTitre avec les Titres passe en parametres /// /// Liste des titres a ajouter a la Collection public CollectionTitre(params Titre[] desTitres) { ListeTitre = new ReadOnlyObservableCollection(listeTitre); foreach(Titre t in desTitres) { listeTitre.Add(t); } Debug.WriteLine("Collection crée"); } /// /// Transforme une CollectionTitre en string (utilise par l'affichage console) /// /// Un string avec toutes les informations des Titres de la Collection public override string ToString() { StringBuilder sb = new StringBuilder("Mes Titres : "); foreach (Titre t in listeTitre) { sb.Append($"{t}\t"); } return sb.ToString(); } /// /// Ajoute un Titre a la Collection /// /// Titre a ajouter /// True si le titre est ajoute, False sinon public bool AjouterTitreDansCollection(Titre t) { if (ContenirTitreDansCollection(t)) { Debug.WriteLine("Le titre existe deja"); return false; } else { listeTitre.Add(t); return true; } } /// /// Recherche si le Titre est dans la collection /// /// Titre a rechercher /// True si le Titre est dans la collection, False sinon public bool ContenirTitreDansCollection(Titre t) { return listeTitre.Contains(t); } /// /// Supprime le Titre de la collection /// /// Titre a supprimer /// True si le Titre est supprimer, False sinon public bool SupprimerTitreDeCollection(Titre t) { if (ContenirTitreDansCollection(t)) { listeTitre.Remove(t); return true; } else { Debug.WriteLine("Le titre n'existe pas"); return false; } } } }