예제 #1
0
파일: MSection.cs 프로젝트: cyroul82/Exo9
 public void Supprimer(MStagiaire stagiaire)
 {
     if (!listStagiaires.Remove(stagiaire.NumOsia))
     {
         throw new Exception("Can't delete this stagiaire, does not exist !");
     }
 }
예제 #2
0
 /// <summary>
 /// constructeur
 /// </summary>
 /// <param name="unStagiaire">ref du stagiaire qui reçoit la note</param>
 public frmSaisieNote(MStagiaire unStagiaire)
 {
     InitializeComponent();
     this.leStagiaire = unStagiaire;
     // personnalisation titre form
     this.Text += unStagiaire.ToString();
 }
예제 #3
0
        /// <summary>
        /// modifier les données d'un stagiaire
        /// tout est modifiable sauf le numOsia (= clé de la collection)
        /// </summary>
        /// <param name="unStagiaire">la référence au nouvel objet MStagiaire pour cette clé</param>
        public void Remplacer(MStagiaire unStagiaire)
        {
            // il suffit de modifier la référence à l'objet MStagiaire
            // dans la collection pour ce numOsia

            //modifier la référence de stagiaire stockée dans la collection
            this.lesStagiaires[unStagiaire.NumOsia] = unStagiaire;
        }
예제 #4
0
        /// <summary>
        /// bouton OK : contrôler les données saisies en formulaire,
        /// instancier un objet MStagiaire et le référencer en collection
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        //private void btnOK_Click(object sender, EventArgs e)
        //{
        //    // controle vraissemblance des données saisies sur le form
        //    if (this.controle())
        //    {

        //        //  instancie le bon objet MStagiaire et l'ajoute à la collection de sa section
        //        if (this.instancie())
        //            {
        //                // cas général :
        //                // si l'instanciation stagiaire et
        //                // son ajout au tableau est OK :
        //                // - fermeture de la boite de dialogue par validation
        //                this.DialogResult = DialogResult.OK;
        //            }
        //     }
        //}



        /// <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>
        internal Boolean Instancie()
        {
            try
            {
                if (this.rbtDE.Checked) // c'est un DE
                {
                    // instancier un stagiaire spécialisé DE et lui affecter toutes ses propriétés
                    this.nouveauStagiaire = new MStagiaireDE(
                        Int32.Parse(base.txtOSIA.Text.Trim()),
                        base.txtNom.Text,
                        base.txtPrenom.Text,
                        base.txtAdresse.Text,
                        base.txtVille.Text,
                        base.txtCodePostal.Text.Trim(),
                        this.chkRemuAfpa.Checked);
                }
                else // c'est un CIF
                {
                    // déterminer le type de CIF
                    String leTypeCIF;
                    if (this.rbtCDD.Checked)
                    {
                        leTypeCIF = "CDD";
                    }
                    else if (this.rbtCDI.Checked)
                    {
                        leTypeCIF = "CDI";
                    }
                    else
                    {
                        leTypeCIF = "TT";
                    }

                    // instancier un stagiaire spécialisé CIF et lui affecter toutes ses propriétés
                    nouveauStagiaire = new MStagiaireCIF(
                        Int32.Parse(base.txtOSIA.Text.Trim()),
                        base.txtNom.Text,
                        base.txtPrenom.Text,
                        base.txtAdresse.Text,
                        base.txtVille.Text,
                        base.txtCodePostal.Text.Trim(),
                        this.txtFongecif.Text,
                        leTypeCIF);
                }


                return(true);
            }
            catch (Exception ex)
            {
                nouveauStagiaire = null;
                MessageBox.Show("Erreur : \n" + ex.Message, "Ajout de stagiaire");
                return(false);
            }
        }
예제 #5
0
파일: MSection.cs 프로젝트: cyroul82/Exo9
 public void Remplacer(MStagiaire stagiaire)
 {
     if (listStagiaires.ContainsKey(stagiaire.NumOsia))
     {
         listStagiaires[stagiaire.NumOsia] = stagiaire;
     }
     else
     {
         throw new Exception("Can't remplace this stagiaire, can't find the numOsia !");
     }
 }
예제 #6
0
 /// <summary>
 /// constructeur : instancie et personnalise le form et l'affiche en modal;
 /// récupère ensuite le résultat du dialogue et la ref du stagiaire instancié
 /// </summary>
 /// <param name="uneSection">la section du stagiaire à créer</param>
 public CtrlNouveauStagiaire(MSection uneSection)
 {
     this.laSection = uneSection;
     // instancier le form initial
     this.leForm       = new frmAjoutStagiaire(this.laSection);
     this.leForm.Text += this.laSection.ToString();
     // variante avec plus de contrôle du from par le Contrôleur
     this.leForm.btnOK.Click += new EventHandler(this.btnOK_Click);
     // afficher le form
     this.leForm.ShowDialog();
     // en fin de dialogue modal récupérer la ref du stagiaire spécialisé instancié par le form
     this.leStagiaire = this.leForm.LeStagiaire;
 }
 /// <summary>
 /// constructeur : instancie et personnalise le form et l'affiche en modal;
 /// </summary>
 public CtrlVisuModifStagiaire(MStagiaire unStagiaire)
 {
     // mémo ref au stagiaire à modifier
     this.leStagiaire = unStagiaire;
     // instancier le form initial
     this.leForm      = new frmVisuStagiaire(this.leStagiaire);
     this.leForm.Text = this.leStagiaire.ToString();
     // implémenter l'événement bouton Saisir Note
     this.leForm.btnSaisirNote.Click += new EventHandler(btnSaisirNote_Click);
     // implémenter l'événement bouton Valider
     this.leForm.btnValider.Click += new EventHandler(btnValider_Click);
     // afficher le form
     this.leForm.ShowDialog();
 }
예제 #8
0
        /// <summary>
        /// insère un stagiaire dans la table Stagiaires de la BDD
        /// </summary>
        /// <param name="unStagiaire">objet MStagiaire correspondant</param>
        /// <param name="unCodeSection">identifiant de sa section</param>
        public static void InsereStagiaire(MStagiaire unStagiaire, MSection uneSection)
        {
            // instancier le dbContext au besoin
            if (DonneesDAO.DbContextFormation == null)
            {
                DonneesDAO.DbContextFormation = new FormationsContainer();
            }

            // rechercher l'Entity Section
            Sections laSection = DonneesDAO.DbContextFormation.SectionsSet.Find(uneSection.CodeSection);
            // instancie un Entity et le renseigne à partir du MStagiaire reçu
            Stagiaires unStagiaireEF = null; // pour compilateur

            if (unStagiaire is MStagiaireCIF)
            {
                unStagiaireEF = new StagiaireCIF(unStagiaire.NumOsia, unStagiaire.Nom, unStagiaire.Prenom,
                                                 unStagiaire.Rue, unStagiaire.Ville, unStagiaire.CodePostal,
                                                 unStagiaire.NbreNotes, Convert.ToDecimal(unStagiaire.PointsNotes), laSection,
                                                 ((MStagiaireCIF)unStagiaire).Fongecif, ((MStagiaireCIF)unStagiaire).TypeCif);
            }


            else
            {
                // cas d'un DE
                unStagiaireEF = new StagiaireDE(unStagiaire.NumOsia, unStagiaire.Nom, unStagiaire.Prenom,
                                                unStagiaire.Rue, unStagiaire.Ville, unStagiaire.CodePostal,
                                                unStagiaire.NbreNotes, Convert.ToDecimal(unStagiaire.PointsNotes), laSection,
                                                ((MStagiaireDE)unStagiaire).RemuAfpa);
            }

            try
            {
                // ajoute l'Entity au dbSet du dbContext
                DonneesDAO.DbContextFormation.StagiairesSet.Add(unStagiaireEF);
                // déclenche la MAJ sur BDD
                DonneesDAO.DbContextFormation.SaveChanges();
            }
            catch (Exception ex) // a ce niveau, erreur possible en cas de doublon
            {                    // avec un  autre stagiaire déjà chargé en mémoire
                throw ex;        // ou erreur d'accès à la BDD
            }
        }
예제 #9
0
        /// <summary>
        /// modifie un stagiaire en BDD
        /// </summary>
        /// <param name="unStagiaire">la ref à l'objet Mstagiaire qui a subi des modifications</param>
        public static void ModifieStagiaire(MStagiaire unStagiaire)
        {
            // instancier le dbContext au besoin
            if (DonneesDAO.DbContextFormation == null)
            {
                DonneesDAO.DbContextFormation = new FormationsContainer();
            }

            // recherche l'Entity et la renseigne à partir du MStagiaire reçu
            Stagiaires leStagiaire = DonneesDAO.DbContextFormation.StagiairesSet.Find(unStagiaire.NumOsia);

            // renseigne les colonnes à partir de l’objet MStagiaire reçu

            leStagiaire.NomStagiaire        = unStagiaire.Nom;
            leStagiaire.PrenomStagiaire     = unStagiaire.Prenom;
            leStagiaire.rueStagiaire        = unStagiaire.Rue;
            leStagiaire.VilleStagiaire      = unStagiaire.Ville;
            leStagiaire.CodePostalStagiaire = unStagiaire.CodePostal;
            leStagiaire.PointsNotes         = (decimal?)unStagiaire.PointsNotes;
            leStagiaire.NbreNotes           = unStagiaire.NbreNotes;
            // champs spécifiques dans la table en fonction du type MStagiaire spécialisé : NB : non modifable actuellement sur le form
            if (leStagiaire is StagiaireCIF)
            {
                // cas d'un CIF
                ((StagiaireCIF)leStagiaire).Fongecif = ((MStagiaireCIF)unStagiaire).Fongecif;
                ((StagiaireCIF)leStagiaire).TypeCIF  = ((MStagiaireCIF)unStagiaire).TypeCif;
            }
            else
            {
                // cas d'un DE
                ((StagiaireDE)leStagiaire).RemuAfpa = ((MStagiaireDE)unStagiaire).RemuAfpa;
            }

            try
            {
                // déclenche la MAJ sur BDD par le dbContext
                DonneesDAO.DbContextFormation.SaveChanges();
            }
            catch (Exception ex) // a ce niveau, erreur possible en cas de doublon
            {                    // avec un  autre stagiaire déjà chargé en mémoire
                throw ex;        // ou erreur d'accès à la BDD
            }
        }
예제 #10
0
 /// <summary>
 /// affiche en textbox les données d'un stagiaire reçu
 /// </summary>
 /// <param name="unStagiaire">la référence du stagiaire à afficher</param>
 public void AfficheStagiaire(MStagiaire unStagiaire)
 {
     // affecter les textbox
     this.txtOSIA.Text       = unStagiaire.NumOsia.ToString();
     this.txtNom.Text        = unStagiaire.Nom;
     this.txtPrenom.Text     = unStagiaire.Prenom;
     this.txtAdresse.Text    = unStagiaire.Rue;
     this.txtVille.Text      = unStagiaire.Ville;
     this.txtCodePostal.Text = unStagiaire.CodePostal;
     this.AfficheMoyenne(this.leStagiaire);
     if (unStagiaire is MStagiaireCIF)
     {
         this.rbtCIF.Checked = true;
     }
     else
     {
         this.rbtDE.Checked = true;
     }
     // placer le curseur sur le nom
     this.txtNom.Focus();
 }
예제 #11
0
        /// <summary>
        /// affiche en textbox les données d'un stagiaire reçu
        /// </summary>
        /// <param name="unStagiaire">la référence du stagiaire à afficher</param>
        private void afficheStagiaire(MStagiaire unStagiaire)
        {
            // affecter les textbox
            this.txtOSIA.Text          = unStagiaire.NumOsia.ToString();
            this.txtNom.Text           = unStagiaire.Nom;
            this.txtPrenom.Text        = unStagiaire.Prenom;
            this.txtAdresse.Text       = unStagiaire.Rue;
            this.txtVille.Text         = unStagiaire.Ville;
            this.txtCodePostal.Text    = unStagiaire.CodePostal;
            this.lblValeurMoyenne.Text = unStagiaire.DonnerMoyenne().ToString();
            // personnaliser le form en fonction du type de stagiaire
            if (unStagiaire is MStagiaireDE)
            {
                this.rbtDE.Checked = true;
            }
            if (unStagiaire is MStagiaireCIF)
            {
                this.rbtCIF.Checked = true;
            }

            // placer le curseur sur le nom
            this.txtNom.Focus();
        }
예제 #12
0
 /// <summary>
 /// supprimer un stagaire de la collection
 /// (reçoit la ref au stagiaire et en déduit la clé (= numOsia) pour la collection)
 /// </summary>
 /// <param name="unStagiaire">la référence au stagiaire à supprimer</param>
 public void Supprimer(MStagiaire unStagiaire)
 {
     this.lesStagiaires.Remove(unStagiaire.NumOsia); // à sécuriser...
 }
예제 #13
0
 /// <summary>
 /// ajouter un stagiaire à la collection
 /// (reçoit la ref au stagiaire et en déduit la clé (= numOsia) pour la collection)
 /// </summary>
 /// <param name="unStagiaire">la référence du stagiaire à ajouter</param>
 public void Ajouter(MStagiaire unStagiaire)
 {
     this.lesStagiaires.Add(unStagiaire.NumOsia, unStagiaire);
 }
예제 #14
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="unStagiaire"></param>
        public frmVisuStagiaire(MStagiaire unStagiaire)
        {
            InitializeComponent();

            this.leStagiaire = unStagiaire;
        }
예제 #15
0
 /// <summary>
 /// affiche la mot=yenne actualisée
 /// </summary>
 public void AfficheMoyenne(MStagiaire unStagiaire)
 {
     this.lblValeurMoyenne.Text = unStagiaire.DonnerMoyenne().ToString();
 }
예제 #16
0
파일: MSection.cs 프로젝트: cyroul82/Exo9
 public void Ajouter(MStagiaire stagiaire)
 {
     listStagiaires.Add(stagiaire.NumOsia, stagiaire);
 }