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;
}
}
}
}