예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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
        }