///<see cref="PieceDeMusee.Ajouter(PieceDeMusee)"/> public override void Ajouter(PieceDeMusee pdm) { if (!listePDM.Contains(pdm)) { listePDM.Add(pdm); } }
/// <see cref="PieceDeMusee.Supprimer(PieceDeMusee)"/> public override void Supprimer(PieceDeMusee pdm) { if (pdm != null) { if (listePDM.Contains(pdm)) { listePDM.Remove(pdm); } else { var collMère = listePDM.SingleOrDefault(c => c.ListePDM.Contains(pdm)); if (collMère != null) { (collMère as Collection).Supprimer(pdm); listePDM.CollectionChanged += (o, args) => OnPropertyChanged("AllElemDePDM"); listePDM.CollectionChanged += (o, args) => OnPropertyChanged("AllColl"); listePDM.CollectionChanged += (o, args) => OnPropertyChanged("AllElemSeuls"); } } } }
/// <summary> /// Méthode qui doit être réécrite mais qui renvoit une exception car elle ne doit pas être redéfinie ici. /// </summary> /// <param name="pdm">Un élément ou une collection</param> public override void Supprimer(PieceDeMusee pdm) { throw ExceptionNonElt; }
/// <summary> /// Méthode qui doit être réécrite mais qui renvoit une exception car elle ne doit pas être redéfinie ici. /// </summary> /// <param name="pdm">Un élément ou une collection</param> public override void Ajouter(PieceDeMusee pdm) { throw ExceptionNonElt; }
/// <summary> /// Méthode qui par le biais de LINQ nous revoit un élément ou une collection grâce à son nom. /// </summary> /// <param name="nom">Nom de l'élément/collection à rechercher.</param> /// <returns> /// PieceDeMusee qui sera donc soit un élément soit une collection.</returns> private PieceDeMusee ChercherEltParNom(string nom, PieceDeMusee utile) { var pdm = ((racine.ListePDM.Select(p => p)).Concat(racine.ListePDM.SelectMany(p => p.ListePDM))).SingleOrDefault(l => l.Nom == nom && l.GetType().Equals(utile.GetType())); return((PieceDeMusee)pdm); }
/// <summary> /// Méthode de la suppression d'un élément /// </summary> /// <param name="elt"></param> public abstract void Supprimer(PieceDeMusee pdm);
/// <summary> /// Méthode d'ajout d'un élément ou d'une collection dans la collection principale. /// </summary> /// <param name="pdm">Elément ou collection que l'on souhaite ajouter.</param> public abstract void Ajouter(PieceDeMusee pdm);