private void But_Click(object sender, EventArgs e) { PropertyInfo pi = (PropertyInfo)((Button)sender).Tag; Object objet = null; switch (pi.PropertyType.Name) { case "Editeur": objet = new Editeur(); break; case "Musicien": objet = new Musicien(); break; //case "Ville": // objet = new Ville(); // break; case "Roles": break; case "Opéra": objet = null; foreach (Control cl in Controls) { if (cl is ComboBox box) { if (cl.Name == pi.PropertyType.Name) { objet = (Opéra)box.SelectedItem; } } } if (objet == null) { objet = new Opéra(); // {Musicien = ((Disques)ObjetCourant).; } break; case "Orchestres": objet = new Orchestres(); break; case "Salles": objet = new Salles(); break; case "Instrument": objet = new Instrument(); break; case "Pays": objet = new Pays(); break; case "Airs": foreach (Control cl in Controls) { if (cl is ComboBox box) { if (cl.Name == pi.PropertyType.Name) { objet = (Airs)box.SelectedItem; break; } } } objet = new Airs { Opéra = ((Disques)currentNode.Tag).Opéra }; break; } MetaJour(pi, objet, currentNode); }
private static Control CréeCombo(object objet, PropertyInfo propriété, TreeNode tn = null) { Type t = objet.GetType(); Control edit = new ComboBox { Width = 220, Name = propriété.Name }; if (t.BaseType.Name == "Opéra") { edit.Name = t.BaseType.Name; MainForm.md.Opéra.Where(c => c.Musicien.Code_Musicien == ((Opéra)objet).Musicien.Code_Musicien).ToList().ForEach(x => ((ComboBox)edit).Items.Add(x)); ((ComboBox)edit).SelectedText = ((Opéra)objet).Titre; return(edit); } switch (propriété.Name) { case "Airs": Disques disque = ((Marqueurs)objet).Disques; MainForm.md.Airs.Where(c => c.Opéra.Code_Opéra == disque.Opéra.Code_Opéra).OrderBy(c => c.Nom).ToList().ForEach(x => ((ComboBox)edit).Items.Add(x)); if (((Marqueurs)objet).Airs != null) { ((ComboBox)edit).SelectedItem = ((Marqueurs)objet).Airs; } break; case "Audio": MainForm.md.Disques.Where(c => !String.IsNullOrEmpty(c.Audio)).Select(c => c.Audio).Distinct().ToList().ForEach(x => ((ComboBox)edit).Items.Add(x)); if (((Disques)objet).Audio != null) { ((ComboBox)edit).Text = ((Disques)objet).Audio; } break; case "Ville": MainForm.md.Salles.Where(c => !String.IsNullOrEmpty(c.Ville)).Select(c => c.Ville).Distinct().ToList().ForEach(x => ((ComboBox)edit).Items.Add(x)); if (((Salles)objet).Ville != null) { ((ComboBox)edit).Text = ((Salles)objet).Ville; } ((ComboBox)edit).Sorted = true; break; case "Vidéo": MainForm.md.Disques.Where(c => !String.IsNullOrEmpty(c.Vidéo)).Select(c => c.Vidéo).Distinct().ToList().ForEach(x => ((ComboBox)edit).Items.Add(x)); if (((Disques)objet).Vidéo != null) { ((ComboBox)edit).Text = ((Disques)objet).Vidéo; } break; case "Format": MainForm.md.Disques.Where(c => !String.IsNullOrEmpty(c.Format)).Select(c => c.Format).Distinct().ToList().ForEach(x => ((ComboBox)edit).Items.Add(x)); if (((Disques)objet).Format != null) { ((ComboBox)edit).Text = ((Disques)objet).Format; } break; case "Définition": MainForm.md.Définition.Distinct().ToList().ForEach(x => ((ComboBox)edit).Items.Add(x)); if (((Disques)objet).Définition != null) { ((ComboBox)edit).Text = ((Disques)objet).Définition.Détail; } break; case "Source": MainForm.md.Disques.Where(c => !String.IsNullOrEmpty(c.Source)).Select(c => c.Source).Distinct().ToList().ForEach(x => ((ComboBox)edit).Items.Add(x)); break; case "Editeur": MainForm.md.Editeur.Distinct().OrderBy(c => c.NomEditeur).ToList().ForEach(x => ((ComboBox)edit).Items.Add(x)); ((ComboBox)edit).SelectedItem = propriété.GetValue(objet); break; case "Opéra": string nom = ""; if (tn != null) { Musicien mus = null; if (tn.Tag is Musicien musicien) { mus = musicien; } else if (tn.Parent.Tag is Musicien musicien1) { mus = musicien1; } if (mus != null) { nom = mus.Nom_Musicien; } } MainForm.md.Opéra.Where(c => c.Musicien.Nom_Musicien.StartsWith(nom)) .OrderBy(c => c.Titre).ToList() .ForEach(x => ((ComboBox)edit).Items.Add(x)); ((ComboBox)edit).SelectedItem = propriété.GetValue(objet); break; case "Orchestres": MainForm.md.Orchestres.Distinct().OrderBy(c => c.Nom_Orchestre).ToList().ForEach(x => ((ComboBox)edit).Items.Add(x)); ((ComboBox)edit).SelectedItem = propriété.GetValue(objet); break; case "Disques": MainForm.md.Disques.OrderBy(c => c.Opéra.Titre).Distinct().ToList().ForEach(x => ((ComboBox)edit).Items.Add(x)); ((ComboBox)edit).SelectedItem = propriété.GetValue(objet); break; case "Salles": MainForm.md.Salles.Distinct().OrderBy(c => c.Ville).ThenBy(c => c.Nom_Salle).ToList().ForEach(x => ((ComboBox)edit).Items.Add(x)); ((ComboBox)edit).SelectedItem = propriété.GetValue(objet); break; case "Instrument": MainForm.md.Instrument.Where(i => i.Type == "Voix" | i.Nom_Instrument == "Composition" | new[] { "Direction", "Metteur en Scène" }.Contains(i.Nom_Instrument)).Distinct().OrderBy(c => c.Nom_Instrument).ToList().ForEach(x => ((ComboBox)edit).Items.Add(x)); ((ComboBox)edit).SelectedItem = propriété.GetValue(objet); break; case "Pays": MainForm.md.Pays.Distinct().OrderBy(c => c.Nom_Pays).ToList().ForEach(x => ((ComboBox)edit).Items.Add(x)); ((ComboBox)edit).SelectedItem = propriété.GetValue(objet); break; } return(edit); }
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 }