예제 #1
0
파일: MSections.cs 프로젝트: cyroul82/Exo9
 public void Supprimer(MSection section)
 {
     if (!MSections.listSections.Remove(section.Identifiant))
     {
         throw new Exception("Can't delete this section, does not exist !");
     }
 }
예제 #2
0
        /// <summary>
        /// modifier les données d'une section
        /// tout est modifiable sauf le code section (= clé de la collection)
        /// </summary>
        /// <param name="uneSection">la référence au nouvel objet MSection pour cette clé</param>
        public void Remplacer(MSection uneSection)
        {
            // il suffit de modifier la référence à l'objet MSection
            // dans la collection pour ce code Section

            //modifier la référence de section stockée dans la collection
            this.lesSections[uneSection.CodeSection] = uneSection; // à sécuriser...
        }
예제 #3
0
파일: MSections.cs 프로젝트: cyroul82/Exo9
 public void Remplacer(MSection section)
 {
     if (MSections.listSections.ContainsKey(section.Identifiant))
     {
         MSections.listSections[section.Identifiant] = section;
     }
     else
     {
         throw new Exception("Can't remplace this section, can't find the numOsia !");
     }
 }
예제 #4
0
파일: frmMDI.cs 프로젝트: cyroul82/Exo9
        public frmMDI()
        {
            InitializeComponent();

            //Mock-data
            MSection section = new MSection("CDI1", "Développeur", DateTime.Now, DateTime.Now.AddYears(1));

            MSections.listSections.Add(section.Identifiant, section);
            section = new MSection("CDI14", "Concepteur Développeur", DateTime.Now, DateTime.Now.AddYears(1));
            MSections.listSections.Add(section.Identifiant, section);
            Console.WriteLine(MSections.listSections.Count);
        }
예제 #5
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);
            }
        }
예제 #6
0
파일: frmSection.cs 프로젝트: cyroul82/Exo9
 private void btnOk_Click(object sender, EventArgs e)
 {
     if (cbxSection.SelectedItem != null && !String.IsNullOrEmpty(cbxSection.SelectedItem.ToString()))
     {
         String choice = cbxSection.SelectedItem.ToString();
         if (MSections.listSections.ContainsKey(choice))
         {
             MSection section = MSections.listSections[choice];
             selectSection?.Invoke(section);
             this.DialogResult = DialogResult.OK;
         }
     }
 }
예제 #7
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;
 }
예제 #8
0
 /// <summary>
 /// rétablit la source de données de la dataGridView
 /// et rafraîchit son affichage
 /// </summary>
 public void AfficheStagiaires(MSection laSection)
 {
     // déterminer l'origine des données à afficher :
     // appel de la méthode de la classe MSection
     // qui alimente et retourne une datatable
     // à partir de sa collection de stagiaires
     this.grdStagiaires.DataSource = laSection.ListerStagiaires();
     // refraîchir l'affichage
     this.grdStagiaires.Refresh();
     // gestion bouton supprimer
     // admirer la syntaxe...
     this.btnSupprimer.Enabled = (this.grdStagiaires.CurrentRow == null ? false: true);
 }
예제 #9
0
        public static MSection RestitueSection(String unCodeSection)
        {
            // instancier le dbContext au besoin
            if (DonneesDAO.DbContextFormation == null)
            {
                DonneesDAO.DbContextFormation = new FormationsContainer();
            }

            MSection laSection;
            Sections leStage = DonneesDAO.DbContextFormation.SectionsSet.Find(unCodeSection);

            laSection = new MSection(leStage.Idsection, leStage.NomSection, leStage.DateDebut, leStage.DateFin);
            return(laSection);
        }
예제 #10
0
        /// <summary>
        /// initialisation section CDI et chargement des stagiaires correspondants
        /// </summary>
        private void initCDI()
        {
            // initialisation de la collection de sections
            Donnees.Sections = new MSections();
            // pour commencer, une seule section référencée "en dur" dans ce programme
            // instancie la section
            //this.laSection = new MSection("CDI", "Concepteur Développeur Informatique", null, null);
            // l'ajoute dans la collection des sections gérée par la classe de collection
            //Donnees.Sections.Ajouter(this.laSection);

            // chargement section depuis la BDD
            this.laSection = MSectionDAOEFStatic.RestitueSection("CDI");
            Donnees.Sections.Ajouter(this.laSection);

            // chargement et instanciation des données Stagiaires de cette section depuis la BDD
            MStagiaireDAOEFStatic.InstancieStagiairesSection(this.laSection);
        }
예제 #11
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
            }
        }
예제 #12
0
        public static void InstancieSections(MSections lesSections)
        {
            // instancier le dbContext au besoin
            if (DonneesDAO.DbContextFormation == null)
            {
                DonneesDAO.DbContextFormation = new FormationsContainer();
            }

            var query = from a in DonneesDAO.DbContextFormation.SectionsSet
                        select a;
            // ref d'objet
            MSection laSection;

            // parcourt les lignes de l'Entity
            foreach (Sections item in query)
            {
                laSection = new MSection(item.Idsection, item.NomSection,
                                         item.DateDebut, item.DateFin);
                lesSections.Ajouter(laSection);
            }
        }
예제 #13
0
파일: frmMDI.cs 프로젝트: cyroul82/Exo9
 private void openFrmExo9(MSection section)
 {
     if (section == null)
     {
         section = MSections.listSections["CDI1"];
     }
     if (frmPrinc == null)
     {
         frmPrinc              = new frmExo9(section);
         frmPrinc.MdiParent    = this;
         frmPrinc.FormClosing += new FormClosingEventHandler(this.frmPrincClosing);
         frmPrinc.Show();
     }
     if (frmPrinc.WindowState == FormWindowState.Minimized)
     {
         frmPrinc.WindowState = FormWindowState.Normal;
     }
     else
     {
         frmPrinc.Activate();
     }
 }
예제 #14
0
        /// <summary>
        /// Constructeur
        /// (initialise la collection de sections et insère en dur la section DI)
        /// </summary>
        public frmExo9(MSection laSection)
        {
            InitializeComponent();
            // initialisation de la collection de sections
            //Donnees.Sections = new MSections();
            this.laSection = laSection;
            Console.WriteLine(laSection.Identifiant);

            // pour commencer, une seule section référencée "en dur" dans ce programme
            // instancie la section
            //this.laSection = new MSection("CDI1", "Concepteur Développeur Informatique 2012");
            // l'ajoute dans la collection des sections gérée par la classe de collection

            // ajoute en dur un stagiaire à cette section
            // MStagiaire unStagiaire;
            //unStagiaire = new MStagiaireDE(11111, "DUPOND", "Albert", "12 rue des Fleurs", "NICE", "06300", false);
            // l'ajoute dans la collection des stagiaires de cette section
            // unStagiaire = new MStagiaireDE(11111, "RAT", "Cyril", "109 Rue de la Soleillette", "Saint-Raphaël", "83700", false);
            //laSection.Ajouter(unStagiaire);
            // afficher la liste des stagiaires de la section
            this.afficheStagiaires();
        }
예제 #15
0
 /// <summary>
 /// constructeur
 /// </summary>
 /// <param name="uneSection">la section de ce stagiaire</param>
 public frmAjoutStagiaire(MSection uneSection)
 {
     InitializeComponent();
     this.laSection = uneSection;
     Console.WriteLine(laSection.Identifiant);
 }
예제 #16
0
파일: frmMDI.cs 프로젝트: cyroul82/Exo9
 private void selectionSelected(MSection section)
 {
     openFrmExo9(section);
 }
예제 #17
0
 /// <summary>
 /// Constructeur
 /// </summary>
 public frmExo9(MSection uneSection)
 {
     InitializeComponent();
     this.Text     += uneSection.NomSection; // personnalise le titre de la fenêtre
     this.laSection = uneSection;
 }
예제 #18
0
 /// <summary>
 /// ajouter une Section à la collection
 /// (reçoit la ref à la section et en déduit la clé (= codesection) pour la collection)
 /// </summary>
 /// <param name="uneSection">la référence de la section à ajouter</param>
 public void Ajouter(MSection uneSection)
 {
     this.lesSections.Add(uneSection.CodeSection, uneSection); // à sécuriser...
 }
예제 #19
0
 /// <summary>
 /// supprimer une section de la collection
 /// (reçoit la ref à la section et en déduit la clé (= codesection) pour la collection)
 /// </summary>
 /// <param name="uneSection">la référence de la section à supprimer</param>
 public void Supprimer(MSection uneSection)
 {
     this.lesSections.Remove(uneSection.CodeSection); // à sécuriser...
 }
예제 #20
0
 /// <summary>
 /// constructeur
 /// </summary>
 /// <param name="uneSection">la section de ce stagiaire</param>
 public frmAjoutStagiaire(MSection uneSection)
 {
     InitializeComponent();
     this.laSection = uneSection;
 }
예제 #21
0
파일: MSections.cs 프로젝트: cyroul82/Exo9
 public void Ajouter(MSection section)
 {
     MSections.listSections.Add(section.Identifiant, section);
 }