//********************************** Fin des éléments utiles pour la barre de progréssion public WindowGenererResultatsTrimestrielsUI() { InitializeComponent(); genererResultatsTrimestrielsBL = new GenererResultatsTrimestrielsBL(); ancienObjet = new MoyennesTrimestrielsBE(); // Initialisation de la collection, qui va s'afficher dans la DataGrid : ListeMoyennesTrimestriels = new ObservableCollection <MoyennesTrimestrielsBE>(); List <MoyennesTrimestrielsBE> LMoyennesTrimestrielsBE = genererResultatsTrimestrielsBL.listerToutesLesMoyennestrimestriels(); // on met la liste "ListeMoyennesTrimestriels" dans le DataGrid RemplirDataGrid(LMoyennesTrimestrielsBE); List <ClasseBE> LClasse = genererResultatsTrimestrielsBL.listerToutesLesClasses(); // ------------------- Chargement de la liste des codes de Classe dans le comboBox de la fenêtre //(utile pour le filtre) cmbClasse.ItemsSource = genererResultatsTrimestrielsBL.getListCodeClasse(LClasse); List <TrimestreBE> LTrimestre = genererResultatsTrimestrielsBL.listerTousLesTrimestres(); // ------------------- Chargement de la liste des codes de Trimestre dans le comboBox de la fenêtre //(utile pour le filtre) cmbTrimestre.ItemsSource = genererResultatsTrimestrielsBL.getListCodeTrimestre2(LTrimestre); annee = genererResultatsTrimestrielsBL.getAnneeEnCours(); txtAnnee.Text = Convert.ToString(annee); txtAnneeScolaire.Text = (annee - 1).ToString(); //on cache la barre de progression ProgressBar1.Visibility = System.Windows.Visibility.Hidden; }
// ajouter une Moyenne Trimestriel public bool ajouterMoyenneTrimestriel(MoyennesTrimestrielsBE moyenne) { if (moyennesTrimestrielsDA.ajouter(moyenne)) { journalDA.journaliser("enregistrement de la moyenne trimestrielle de l'élève de matricule " + moyenne.matricule + ". matière : " + moyenne.codeMat + ", année : " + moyenne.annee + ", trimestre : " + moyenne.codeTrimestre + ", moyenne : " + moyenne.moyenne); return(true); } return(false); }
// modifier une Moyenne Trimestriel public bool modifierMoyenneTrimestriel(MoyennesTrimestrielsBE moyenne) { if (moyennesTrimestrielsDA.modifier(moyenne)) { journalDA.journaliser("modification de la moyenne trimestrielle de l'élève de matricule " + moyenne.matricule + ". matière : " + moyenne.codeMat + ", année : " + moyenne.annee + ", trimestre : " + moyenne.codeTrimestre + ". ancienne moyenne : " + moyenne.moyenne + ", nouvelle moyenne : " + moyenne.moyenne); return(true); } return(false); }
// supprimer une Moyenne Trimestriel public bool supprinerMoyenneTrimestriel(MoyennesTrimestrielsBE moyenne) { if (moyennesTrimestrielsDA.supprimer(moyenne)) { journalDA.journaliser("suppression de la moyenne trimestrielle de l'élève de matricule " + moyenne.matricule + ". matière : " + moyenne.codeMat + ", année : " + moyenne.annee + ", trimestre : " + moyenne.codeTrimestre + ", moyenne : " + moyenne.moyenne); return(true); } return(false); }
//creer une Moyenne Trimestriel public bool creerMoyenneTrimestriel(String codeMatiere, String codeTrimestre, String matricule, Double moyenne, int annee, int rang, double moyenneClasse, string mention, double moyenneMin, double moyenneMax, string appreciation) { MoyennesTrimestrielsBE moy = new MoyennesTrimestrielsBE(codeMatiere, codeTrimestre, matricule, moyenne, annee, rang, moyenneClasse, mention, moyenneMin, moyenneMax, appreciation); if (moyennesTrimestrielsDA.ajouter(moy)) { journalDA.journaliser("enregistrement de la moyenne trimestrielle de l'élève de matricule " + matricule + ". matière : " + codeMatiere + ", année : " + annee + ", trimestre : " + codeTrimestre + ", moyenne : " + moyenne); return(true); } return(false); }
// rechercher une Moyenne Trimestriel public MoyennesTrimestrielsBE rechercherMoyenneTrimestriel(MoyennesTrimestrielsBE moyenne) { return(moyennesTrimestrielsDA.rechercher(moyenne)); }
//Calcul de la moyenne des élèves pour une classe, une Trimestre, une matière et une année donnée //il s'agit de remplir la table "moyennesTrimestriels" public void calculerMoyenneTrimestriels(String codeClasse, String codeTrimestre, int annee) { ClasseBE classe = new ClasseBE(); classe.codeClasse = codeClasse; ClasseBE classeBE = rechercherClasse(classe); //on liste les matières de la classe pour l'année choisi List <MatiereBE> LMatiere = listeDesMatieresDuneClasse(classeBE, annee); //on calcul les moyennes trimestrielles par matières for (int j = 0; j < LMatiere.Count; j++) { // calcul de la moyenne trimestrielle des élève sur chacune des matières individuellement List <String[]> List = moyennesTrimestrielsDA.calculMoyenneTrimestrielle(codeClasse, LMatiere.ElementAt(j).codeMat, codeTrimestre, annee); if (List != null && List.Count != 0) { //on fabrique les objets de type moyennesTrimestrielles et on les mets dans le BD List <MoyennesTrimestrielsBE> LMoyennesTrimestriels = new List <MoyennesTrimestrielsBE>(); for (int i = 0; i < List.Count; i++) { /* * List.ElementAt(i)[0] : matricule; * List.ElementAt(i)[1] : codeMatiere; * List.ElementAt(i)[2] : moyenne; */ MoyennesTrimestrielsBE moyenneTrimestrielle = new MoyennesTrimestrielsBE(); moyenneTrimestrielle.codeMat = List.ElementAt(i)[1]; moyenneTrimestrielle.codeTrimestre = codeTrimestre; moyenneTrimestrielle.matricule = List.ElementAt(i)[0]; moyenneTrimestrielle.moyenne = Convert.ToDouble(List.ElementAt(i)[2]); moyenneTrimestrielle.annee = annee; moyenneTrimestrielle.rang = 0; moyenneTrimestrielle.moyenneClasse = 0; if (getMention(moyenneTrimestrielle.moyenne) != null) { moyenneTrimestrielle.mention = getMention(moyenneTrimestrielle.moyenne); } else { moyenneTrimestrielle.mention = ""; } moyenneTrimestrielle.moyenneMin = 0; moyenneTrimestrielle.moyenneMax = 0; LMoyennesTrimestriels.Add(moyenneTrimestrielle); } //-------------- on calcule le rang, la moyenne générale de la classe, les moyennes min et max double moyenneDeLaClasse = 0; // moyenne générale de la classe double moyenneMin = LMoyennesTrimestriels.ElementAt(0).moyenne; // moyenne mininale des élèves de la classe double moyenneMax = LMoyennesTrimestriels.ElementAt(0).moyenne; // moyenne maximale des élèves de la classe //on trie la liste LMoyennesTrimestriels = LMoyennesTrimestriels.OrderByDescending(o => o.moyenne).ToList(); MoyennesTrimestrielsBE moyennePrecedente = new MoyennesTrimestrielsBE(); for (int i = 0; i < LMoyennesTrimestriels.Count; i++) { // ------------------- DEBUT détermination du rang if (i == 0) { // on est sur le premier (celui qui a la plus grande note) MoyennesTrimestrielsBE oldMoyenne = LMoyennesTrimestriels.ElementAt(i); // l'ancienne version de la moyenne (sera utilisé pour la modification) LMoyennesTrimestriels.ElementAt(i).rang = 1; // le premier pour cette séquence et cette matière //on met à jour le rang dans la BD //modifierMoyenne(oldMoyenne, LMoyenneAvecRang.ElementAt(j)); moyennePrecedente = LMoyennesTrimestriels.ElementAt(i); } else { if (LMoyennesTrimestriels.ElementAt(i).moyenne == moyennePrecedente.moyenne) { MoyennesTrimestrielsBE oldMoyenne = LMoyennesTrimestriels.ElementAt(i); // l'ancienne version de la moyenne (sera utilisé pour la modification) //alors on a un ex éco (ils ont le même rang) LMoyennesTrimestriels.ElementAt(i).rang = moyennePrecedente.rang; //on met à jour le rang dans la BD //modifierMoyenne(oldMoyenne, LMoyenneAvecRang.ElementAt(j)); } else { MoyennesTrimestrielsBE oldMoyenne = LMoyennesTrimestriels.ElementAt(i); // l'ancienne version de la moyenne (sera utilisé pour la modification) //alors l'élève prend le rend suivant //LMoyenneAvecRang.ElementAt(j).rang = moyennePrecedente.rang + 1; LMoyennesTrimestriels.ElementAt(i).rang = i + 1; //on met à jour le rang dans la BD //modifierMoyenne(oldMoyenne, LMoyenneAvecRang.ElementAt(j)); } moyennePrecedente = LMoyennesTrimestriels.ElementAt(i); } // ------------------- FIN détermination du rang // ------------------- DEBUT détermination de la moyenne de la classe moyenneDeLaClasse = moyenneDeLaClasse + LMoyennesTrimestriels.ElementAt(i).moyenne; // ------------------- FIN détermination de la moyenne de la classe // ------------------- DEBUT détermination des moyennes minimales et maximales if (LMoyennesTrimestriels.ElementAt(i).moyenne < moyenneMin) { moyenneMin = LMoyennesTrimestriels.ElementAt(i).moyenne; } if (LMoyennesTrimestriels.ElementAt(i).moyenne > moyenneMax) { moyenneMax = LMoyennesTrimestriels.ElementAt(i).moyenne; } // ------------------- FIN détermination des moyennes minimales et maximales } moyenneDeLaClasse = moyenneDeLaClasse / LMoyennesTrimestriels.Count; //------------------- DEBUT mise à jour des moyennes avec les infos telles que : moyenneClasse, mention, moyenneMin, moyenneMax for (int i = 0; i < LMoyennesTrimestriels.Count; i++) { LMoyennesTrimestriels.ElementAt(i).moyenneClasse = moyenneDeLaClasse; LMoyennesTrimestriels.ElementAt(i).moyenneMin = moyenneMin; LMoyennesTrimestriels.ElementAt(i).moyenneMax = moyenneMax; //on met à jour le rang dans la BD if (moyennesTrimestrielsDA.rechercher(LMoyennesTrimestriels.ElementAt(i)) != null) { supprimerMoyenneTrimestriel(LMoyennesTrimestriels.ElementAt(i)); } ajouterMoyenneTrimestriel(LMoyennesTrimestriels.ElementAt(i)); //modifierMoyenneTrimestriel(LMoyennesTrimestriels.ElementAt(i), LMoyennesTrimestriels.ElementAt(i)); } //------------------- FIN mise à jour des moyennes avec les infos telles que : moyenneClasse, mention, moyenneMin, moyenneMax } } journalDA.journaliser("Calcul de la moyenne trimestrielle des élèves de la classe : " + codeClasse + ", trimestre : " + codeTrimestre + ", année : " + annee); }