public void ActivitésMusicien(TreeNode noeud) { #region Activités d'un musicien donné //TreeNode noeud = arbre.SelectedNode; noeud.Nodes.Clear(); // Musicien mus = (Musicien)arbre.SelectedNode.Tag; //var inter = mus.Interprétation.OrderBy(m => m.Roles.Role); Roles role = null; TreeNode tn = null; foreach (Opéra op in Opéra.Where(o => o.Disques.Count > 0).OrderBy(o => o.Année)) { #region Compositions TreeNode to = new TreeNode("Composition : " + op.Titre) { Tag = op }; noeud.Nodes.Add(to); #endregion } foreach (Diriger dir in Diriger.OrderBy(c => c.Disques.Opéra.Titre)) { #region Direction Disques dis = dir.Disques; dis.CréeNoeudDisque(noeud); // CréeNoeudDisque(dis, arbre); #endregion } foreach (MiseEnScene mise in MiseEnScene) { #region Mise en Scène Disques dis = mise.Disques; dis.CréeNoeudDisque(noeud); // CréeNoeudDisque(dis, arbre); #endregion } noeud.Text = this.ToString() + " : " + Interprétation.Count + " role"; if (Interprétation.Count > 1) { noeud.Text += "s"; } foreach (Interprétation interprétation in Interprétation.OrderBy(m => m.Roles.Role)) { #region Interprète if (role != interprétation.Roles) { role = interprétation.Roles; tn = new TreeNode("Interprète : " + role.Role + " (" + role.Opéra.Titre + " - " + role.Opéra.Musicien.ToString() + ")") { Tag = role }; // tn.Nodes.Add(role.Opéra.CréeNoeudOpéra(arbre)); noeud.Nodes.Add(tn); } TreeNode n = new TreeNode(interprétation.Disques.Fichier); if ((interprétation.Disques.Pochette != null) & (interprétation.Disques.ASIN != null)) { MemoryStream ms = new MemoryStream(interprétation.Disques.Pochette); Image im = Image.FromStream(ms); MainForm.imagesMusiciens.Images.Add(interprétation.Disques.ASIN.ToString(), im); n.ImageKey = interprétation.Disques.ASIN.ToString(); n.SelectedImageKey = n.ImageKey; im.Dispose(); } if (String.IsNullOrEmpty(interprétation.Disques.Fichier)) { n.Text = interprétation.Disques.Opéra.Titre + " (" + interprétation.Disques.Editeur.NomEditeur + ")"; } tn.Nodes.Add(n); n.Tag = interprétation.Disques; #endregion } #endregion }
public void CréeNoeudDisque(TreeNode noeud) { // TreeNode noeud = arbre.SelectedNode; #region Noeud Disque int personne = MainForm.imagesMusiciens.Images.IndexOfKey("a0"); int film = MainForm.imagesMusiciens.Images.IndexOfKey("a1"); int orchestre = MainForm.imagesMusiciens.Images.IndexOfKey("a2"); int youtube = MainForm.imagesMusiciens.Images.IndexOfKey("a3"); int amazon = MainForm.imagesMusiciens.Images.IndexOfKey("a4"); int marque = MainForm.imagesMusiciens.Images.IndexOfKey("a5"); int marq = MainForm.imagesMusiciens.Images.IndexOfKey("a6"); int tv = MainForm.imagesMusiciens.Images.IndexOfKey("a7"); int dvd = MainForm.imagesMusiciens.Images.IndexOfKey("a8"); TreeNode noeudOpéra = new TreeNode(Opéra.Titre + " (" + Opéra.Année?.ToString() + ") " + Opéra.Musicien.Nom_Musicien + " " + Opéra.Musicien.Prénom_Musicien, film, film) { Tag = this, Name = this.ToString() }; if (!String.IsNullOrEmpty(Fichier)) { noeudOpéra.NodeFont = new Font(noeud.TreeView.Font, FontStyle.Italic); } if (Pochette != null) { MetajourPochette(noeud); } else { if (MainForm.imagesMusiciens.Images.ContainsKey("a1")) { noeudOpéra.ImageKey = "a1"; noeudOpéra.SelectedImageKey = noeudOpéra.ImageKey; } } noeudOpéra.Tag = Opéra; noeud.Nodes.Add(noeudOpéra); TreeNode source = new TreeNode(Année?.ToString() + " " + Source + " " + Editeur?.NomEditeur + " :" + Durée?.ToString() + " mn " + Vidéo + ", " + Audio); if (Code_Définition != null) { source.Text += ", " + Définition.Détail; } if (Source == "Téléchargement") { source.ImageIndex = tv; } else { source.ImageIndex = dvd; } noeud.Nodes.Add(source); if (!string.IsNullOrEmpty(ASIN)) { TreeNode asin = new TreeNode(ASIN, amazon, amazon) { Tag = new ASIN { Asin = ASIN } }; noeud.Nodes.Add(asin); } if (LienYouTube.Count > 0) { TreeNode th = new TreeNode("YouTube", youtube, youtube); noeud.Nodes.Add(th); foreach (LienYouTube lien in LienYouTube) { th.Nodes.Add(lien.CréeNoeudLien()); th.Tag = lien; } } if (Diriger.Count == 0) { TreeNode dir = new TreeNode("Inconnu", orchestre, orchestre) { Tag = new Diriger { Disques = this } }; noeud.Nodes.Add(dir); } else { foreach (Diriger dr in Diriger) { #region Orchestre et Direction TreeNode dir = new TreeNode(dr.Orchestres.Nom_Orchestre, orchestre, orchestre) { Tag = dr }; if (dr.Musicien != null) { TreeNode tdir = dr.Musicien.CréeNoeudMusicien(); dir.Nodes.Add(tdir); tdir.Tag = dr.Musicien; } noeud.Nodes.Add(dir); #endregion } } if (MiseEnScene.Count == 0) { TreeNode dir = new TreeNode("Metteur en scène inconnu", personne, personne); MiseEnScene mise = new MiseEnScene(); dir.Tag = mise; noeud.Nodes.Add(dir); } else { foreach (MiseEnScene ms in MiseEnScene) { #region Mise en scène TreeNode mis = ms.Musicien.CréeNoeudMusicien(); mis.Tag = ms; mis.Text = "Mise en scène : " + mis.Text + " " + ms.Salle; noeud.Nodes.Add(mis); #endregion } } foreach (Roles r in Opéra.Roles.OrderBy(rr => rr.Role)) { #region Interprétations TreeNode nn = new TreeNode(r.Role + " (" + r.Voix + ")"); var u = Interprétation.Where(y => y.Roles == r); Interprétation i; if (u.Count() > 0) { i = u.First(); nn.Text += " : " + i.Musicien.Prénom_Musicien + " " + i.Musicien.Nom_Musicien + " (" + i.Musicien.Instrument.Nom_Instrument + ")"; Musicien mus = i.Musicien; if (!MainForm.imagesMusiciens.Images.ContainsKey(mus.Code_Musicien.ToString())) { if (mus.Photo != null) { MemoryStream ms = new MemoryStream(mus.Photo); Image im = Image.FromStream(ms); MainForm.imagesMusiciens.Images.Add(mus.Code_Musicien.ToString(), im); nn.ImageKey = mus.Code_Musicien.ToString(); nn.SelectedImageKey = nn.ImageKey; im.Dispose(); } else { nn.ImageIndex = personne; nn.SelectedImageKey = nn.ImageKey; } } else { nn.ImageKey = mus.Code_Musicien.ToString(); nn.SelectedImageKey = nn.ImageKey; } } else { i = new Interprétation { Roles = r, Disques = this }; nn.Text += " : Inconnu"; nn.ImageIndex = personne; } nn.Tag = i; noeud.Nodes.Add(nn); #endregion } if (Marqueurs.Count > 0) { TreeNode marqueurs = new TreeNode("Airs", marque, marque) { Tag = "Airs" }; foreach (Marqueurs mar in Marqueurs.OrderBy(c => c.Adresse)) { TimeSpan time = TimeSpan.FromTicks((long)mar.Adresse); TreeNode marqueur = new TreeNode(mar.ToString(), marq, marq) { Tag = mar }; marqueurs.Nodes.Add(marqueur); } noeud.Nodes.Add(marqueurs); } noeudOpéra.ExpandAll(); #endregion }