private void grdProgrammers_KeyUp(object sender, KeyEventArgs e)
 {
     if (e.Key == Key.Delete)
     {
         if (MessageBox.Show("Voulez vous supprimer?", "School : Confirmation", System.Windows.MessageBoxButton.YesNo) == MessageBoxResult.Yes)
         {
             if (grdProgrammers.SelectedIndex != -1)
             {
                 ProgrammerBE    p = new ProgrammerBE();
                 LigneProgrammer l = new LigneProgrammer();
                 p = programmers.ElementAt(grdProgrammers.SelectedIndex);
                 l = lignes.ElementAt(grdProgrammers.SelectedIndex);
                 programmers.Remove(p);
                 lignes.Remove(l);
                 affecterMatiereBL.supprimerProgrammer(p);
                 grdProgrammers.ItemsSource = lignes;
                 grdProgrammers.Items.Refresh();
                 if (!matieres.Contains(l.matiere))
                 {
                     matieres.Add(p.codematiere);
                 }
                 cmbMatiere.ItemsSource = matieres;
                 cmbMatiere.Items.Refresh();
             }
             else
             {
                 MessageBox.Show("Aucune ligne sélectionnée", "School brain : alerte", MessageBoxButton.OK, MessageBoxImage.Exclamation);
             }
         }
     }
 }
        public AffecterMatiereUI()
        {
            affecterMatiereBL = new GestionAffectationMatiereBL();
            lignes            = new List <LigneProgrammer>();
            enseignants       = new List <EnseignantBE>();
            classes           = new List <string>();
            matieres          = new List <string>();
            professeurs       = new List <string>();
            groupes           = new List <string>();
            annees            = new List <string>()
            {
                "2011", "2012", "2013", "2014", "2015", "2016", "2017", "2018", "2019", "2020"
            };
            doubleclick  = true;
            modification = false;
            programmers  = new List <ProgrammerBE>();
            programmer   = new ProgrammerBE();
            old_ligne    = new LigneProgrammer();

            InitializeComponent();

            lblAnneeAncien.IsEnabled = false;
            cmbAnneeAncien.IsEnabled = false;
            classes     = affecterMatiereBL.listerValeurColonneClasse("codeclasse");
            enseignants = affecterMatiereBL.listerToutEnseignants();
            if (enseignants != null)
            {
                foreach (EnseignantBE e in enseignants)
                {
                    professeurs.Add(e.codeProf + " - " + e.nomProf);
                }
            }
            else
            {
                MessageBox.Show("shcool brain:Information", "vous devez d'abord enregistrer les enseignants");
            }
            groupes = affecterMatiereBL.listerValeurColonneGroupe("codegroupe");

            annee                       = affecterMatiereBL.anneeEnCours();
            txtAnnee.Text               = " / " + annee;
            txtAnneeScolaire.Text       = (annee - 1).ToString();
            cmbAnneeAncien.ItemsSource  = annees;
            cmbClasse.ItemsSource       = classes;
            cmbClasseModele.ItemsSource = classes;
            cmbEnseignant.ItemsSource   = professeurs;
            cmbMatiere.ItemsSource      = matieres;
            cmbGroupe.ItemsSource       = groupes;
            //programmers = affecterMatiereBL.listerToutProgrammer();
            grdProgrammers.DataContext = this;
            grdProgrammers.ItemsSource = lignes;
        }
        private void cmdValider_Click(object sender, RoutedEventArgs e)
        {
            bool   b = true;
            string annee_ancien = "", annee_encours = "";

            if (cmbAnneeAncien.SelectedValue != null)
            {
                annee_ancien = cmbAnneeAncien.SelectedValue.ToString();
            }
            annee_encours = txtAnneeScolaire.Text;
            ProgrammerBE program = new ProgrammerBE();

            if (programmers.Count > 0)
            {
                foreach (ProgrammerBE p in programmers)
                {
                    p.annee = annee;
                    b       = b & affecterMatiereBL.enregistrerProgrammer(p);
                }
                if (b == true)
                {
                    MessageBox.Show("Affectation réussi", "School brain : alerte", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                else
                {
                    MessageBox.Show("Affectation échouée", "School brain : alerte", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                }
                modification = false;

                programmers = new List <ProgrammerBE>();
                lignes      = new List <LigneProgrammer>();
                grdProgrammers.ItemsSource = lignes;
                if (checkChargerAncien.IsChecked == true)
                {
                    cmbAnneeAncien.IsEnabled     = true;
                    txtAnneeScolaire.IsEnabled   = true;
                    cmbClasse.IsEnabled          = true;
                    checkChargerAncien.IsChecked = false;
                }
                cmbClasse.Text = "";
            }
            else
            {
                MessageBox.Show("Liste encore vide, veuillez affecter les matieres aux enseignants", "School brain : Message alerte", MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }
        }
        private void cmdAjouter_Click(object sender, RoutedEventArgs e)
        {
            ProgrammerBE    nouveau_p = new ProgrammerBE();
            LigneProgrammer l         = new LigneProgrammer();

            if (validerFormulaire() != false)
            {
                string codeprof = cmbEnseignant.SelectedValue.ToString().Split('-')[0].Trim();
                nouveau_p = new ProgrammerBE(cmbClasse.SelectedValue.ToString(), cmbMatiere.SelectedValue.ToString(), codeprof,
                                             Convert.ToInt32(txtCoeficient.Text), annee, cmbGroupe.SelectedValue.ToString());
                l = new LigneProgrammer(cmbMatiere.SelectedValue.ToString(), Convert.ToInt32(txtCoeficient.Text), cmbGroupe.SelectedValue.ToString(),
                                        codeprof, enseignants.Find(en => en.codeProf.Contains(codeprof)).nomProf);

                //si c'est une modification d'une ligne du tableau
                if (doubleclick)
                {
                    programmers.Remove(programmer);
                    lignes.Remove(old_ligne);
                }

                //mise a jour du tableau
                programmers.Add(nouveau_p);
                lignes.Add(l);
                grdProgrammers.ItemsSource = lignes;
                grdProgrammers.Items.Refresh();

                //mise a jour de la liste des matieres
                matieres.RemoveAt(cmbMatiere.SelectedIndex);
                cmbMatiere.ItemsSource = matieres;
                cmbMatiere.Items.Refresh();

                //initialisation des champs
                cmbEnseignant.Text = "";
                cmbMatiere.Text    = "";
                txtCoeficient.Text = "";
                cmbGroupe.Text     = "";
                doubleclick        = false;
            }
            else
            {
                MessageBox.Show("Formulaire non valide, veuillez remplir tous les champs", "School brain : alerte", MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }
        }
        private void grdProgrammers_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (grdProgrammers.SelectedIndex >= 0)
            {
                programmer = programmers.ElementAt(grdProgrammers.SelectedIndex);
                old_ligne  = lignes.ElementAt(grdProgrammers.SelectedIndex);

                txtCoeficient.Text          = Convert.ToString(old_ligne.coeficient);
                cmbEnseignant.SelectedIndex = cmbEnseignant.Items.IndexOf(old_ligne.codeprof + " - " + old_ligne.nomprof);
                cmbGroupe.SelectedIndex     = cmbGroupe.Items.IndexOf(old_ligne.codegroupe);
                //positionnement du drapeau
                doubleclick = true;

                //verifier si la liste des matieres n'est pas vide, dans ce cas il faut ajouter a la liste
                if (matieres.Contains(old_ligne.matiere))
                {
                    cmbMatiere.SelectedIndex = cmbMatiere.Items.IndexOf(old_ligne.matiere);
                }
                else
                {
                    if (modification == false)
                    {
                        matieres.Add(old_ligne.matiere);
                    }
                    else
                    {
                        if (matieres.Count > 0)
                        {
                            matieres.Remove(matieres.ElementAt(0));
                        }
                        matieres.Add(old_ligne.matiere);
                    }
                    cmbMatiere.ItemsSource = matieres;
                    cmbMatiere.Items.Refresh();
                    cmbMatiere.Text = (old_ligne.matiere);
                    modification    = true;
                }
            }
        }