예제 #1
0
        /// <summary>
        /// instancie les objets MStagiaires spécialisés correspondants aux Entities du dbSet
        /// </summary>
        /// <param name="laSection">la ref de la section qui gère la collection de ces stagiaires</param>
        public static void InstancieStagiairesSection(MSection laSection)
        {
            // instancier le dbContext au besoin
            if (DonneesDAO.DbContextFormation == null)
            {
                DonneesDAO.DbContextFormation = new FormationsContainer();
            }

            var query = from a in DonneesDAO.DbContextFormation.StagiairesSet
                        where a.Sections.Idsection == laSection.CodeSection
                        select a;
            // ref d'objet générique (pour la collection)
            MStagiaire leStagiaire;

            // parcourt les lignes de la requête
            foreach (Stagiaires item in query)
            {
                // instancie et renseigne l'objet MStagiaire spécialisé
                if (item is StagiaireCIF)
                {
                    // cas d'un CIF : objet MStagiaireCIF
                    leStagiaire = new MStagiaireCIF(item.NumOsia,
                                                    item.NomStagiaire.Trim(),
                                                    item.PrenomStagiaire.Trim(),
                                                    item.rueStagiaire,
                                                    item.VilleStagiaire.Trim(),
                                                    item.CodePostalStagiaire,
                                                    ((StagiaireCIF)item).Fongecif,
                                                    ((StagiaireCIF)item).TypeCIF.Trim()
                                                    );
                }
                else
                {
                    // cas d'un DE : objet MStagiaireDE
                    leStagiaire = new MStagiaireDE(item.NumOsia,
                                                   item.NomStagiaire.Trim(),
                                                   item.PrenomStagiaire.Trim(),
                                                   item.rueStagiaire,
                                                   item.VilleStagiaire.Trim(),
                                                   item.CodePostalStagiaire.Trim(),
                                                   ((StagiaireDE)item).RemuAfpa
                                                   );
                }

                // affecter points et notes
                // on ne peut affecter directement Pointsnotes et NbreNotes
                // dans MStagiaire que si le demandeur est de ce type MStagiaireDAOEFStatic
                leStagiaire.SetPoints(Convert.ToDouble(item.PointsNotes), (int)item.NbreNotes, typeof(MStagiaireDAOEFStatic).ToString());

                // ajoute le Stagiaire à la collection de la section
                laSection.Ajouter(leStagiaire);
            }
        }
예제 #2
0
        /// <summary>
        /// fonction qui instancie un nouvel objet MStagiaire spécialisé
        /// puis tente d'affecter ses membres (attributs ou prop.)
        /// avec interception erreur éventuelle levée par la classe MStagiaire
        /// et ajoute la référence de ce stagiaire dans la collection de sa section
        /// </summary>
        /// <returns>Boolean : true = OK, false = erreur</returns>
        private Boolean instancie()
        {
            // créer une référence d'objet MStagiaire
            MStagiaire nouveauStagiaire;

            try
            {
                if (this.rbtDE.Checked) // c'est un DE
                {
                    // instancier un stagiaire spécialisé DE et lui affecter toutes ses propriétés
                    Int32 numOsia;
                    if (Int32.TryParse(txtOSIA.Text, out numOsia))
                    {
                        nouveauStagiaire = new MStagiaireDE(numOsia, txtNom.Text, txtPrenom.Text, txtAdresse.Text, txtVille.Text, txtCodePostal.Text, false);
                    }
                    else
                    {
                        throw new Exception("The Osia Number is incorrect, type of Int32");
                    }
                }
                else // c'est un CIF
                {
                    // déterminer le type de CIF
                    TypeCifEnum leTypeCIF;
                    if (this.rbtCDD.Checked)
                    {
                        leTypeCIF = TypeCifEnum.CDD;
                    }
                    else if (this.rbtCDI.Checked)
                    {
                        leTypeCIF = TypeCifEnum.CDI;
                    }
                    else
                    {
                        leTypeCIF = TypeCifEnum.TT;
                    }

                    // instancier un stagiaire spécialisé CIF et lui affecter toutes ses propriétés
                    Int32 numOsia;
                    if (Int32.TryParse(txtOSIA.Text, out numOsia))
                    {
                        nouveauStagiaire = new MStagiaireCIF(numOsia, txtNom.Text, txtPrenom.Text, txtAdresse.Text, txtVille.Text, txtCodePostal.Text, txtFongecif.Text, leTypeCIF);
                    }
                    else
                    {
                        throw new Exception("The Osia Number is incorrect, type of Int32");
                    }
                }

                // dans tous les cas, ajouter la référence d'objet MStagiaire dans la collection de sa section
                laSection.Ajouter(nouveauStagiaire);
                Console.WriteLine(laSection.Identifiant + " ajout nouveau stagiaire ");

                return(true);
            }
            catch (Exception ex)
            {
                nouveauStagiaire = null;
                MessageBox.Show("Erreur : \n" + ex.Message, "Ajout de stagiaire");
                return(false);
            }
        }