private void button1_Click(object sender, EventArgs e) { if (this.dataGridView1.SelectedRows.Count == 0) { MessageBox.Show("Veuillez sélectionner un résultat"); } else { DataGridViewRow ligneSelectionnee = this.dataGridView1.SelectedRows[0]; // Si la page à été lancée à partir de la page d'informations de courses et donc que l'on a l'id de la course dont on veut modifier le resultat int idCourse = Convert.ToInt32(ligneSelectionnee.Cells[0].Value); int idCoureur = coureur.NumLicence; //Supression du résultat resultatRep.Delete(resultatRep.listeResultat(idCourse, idCoureur)[0]); List <Resultat> resultatATrier = new List <Resultat>(); foreach (Resultat resultat1 in resultatRep.ListeResultatsCourse(idCourse)) { resultatATrier.Add(resultat1); } int classement = 1; List <Resultat> SortedList = resultatATrier.OrderBy(o => o.TempsEnSecondes).ToList(); foreach (Resultat resultat1 in SortedList) { resultat1.Classement = classement; resultatRep.Save(resultat1); classement++; } this.dataGridView1.Rows.Clear(); this.dataGridView1.Refresh(); AfficherContenu(); } }
/// <summary> /// Fonction permettant de refresh l'ensemble des gridview selon les modifications faites.tyr /// </summary> public void AfficherContenu() { // On nettoie les 2 dataGridView dataG.Rows.Clear(); dataG.Refresh(); dataGridViewParticipants.Rows.Clear(); dataGridViewParticipants.Refresh(); dataGridViewLicencies.Rows.Clear(); dataGridViewLicencies.Refresh(); // On remplit le datagridView de la page d'accueil avec toutes les courses en bdd foreach (Course course in this.courseRep.GetAll()) { string[] resultat = { course.Id.ToString(), course.Date.ToString(), course.Lieu, course.Distance.ToString(), Convert.ToString(resultatRep.ListeResultatsCourse(course.Id).Count) }; dataG.Rows.Add(resultat); } // On remplit le dataGridView des coureurs non participnts à la course sélectionnée foreach (Coureur coureur in listeCoureursNonParticipants) { string[] resultat = { coureur.NumLicence.ToString(), coureur.Nom }; this.dataGridViewLicencies.Rows.Add(resultat); } // Idem avec les coureurs participants à la course sélectionnée foreach (Coureur coureur in this.listeCoureursParticipants) { string[] resultat = { coureur.NumLicence.ToString(), coureur.Nom }; this.dataGridViewParticipants.Rows.Add(resultat); } }
/// <summary> /// Fonction permettant de remplir les datagridview de la page d'accueil /// </summary> public void AfficherContenu() { // Pour chaque coureur en bdd foreach (Coureur coureur in this.coureurRepository.GetAll()) { // On rempli le datagridview string[] resultat = { coureur.NumLicence.ToString(), coureur.Nom, coureur.Prenom, coureur.DateDeNaissance.ToString() }; dataGridViewCoureurs.Rows.Add(resultat); } // Pour chaque course foreach (Course course in this.courseRepository.GetAll()) { // On remplit le datagridview string[] resultat = { course.Id.ToString(), course.Date.ToString(), course.Lieu, course.Distance.ToString(), Convert.ToString(resultatRepository.ListeResultatsCourse(course.Id).Count) }; dataGridViewCourses.Rows.Add(resultat); } }
/// <summary> /// Fonction qui gère la validation de modification du résultat /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonValider_Click(object sender, EventArgs e) { //Remplissage du resultat à renvoyer List <Resultat> listeResultats = new List <Resultat>(); int classement = 1; resultat.NumDossard = Convert.ToInt32(this.textBoxDossard.Text); resultat.Temps = TimeSpan.Parse(this.textBoxTemps.Text); resultat.TempsEnSecondes = resultat.CalculTempsEnSeconde(resultat.Temps); resultat.AllureMoyenne = resultat.CalculAllureMoyenne(resultat.LaCourse.Distance); resultat.VitesseMoyenne = resultat.CalculVitesseMoyenne(resultat.LaCourse.Distance); // On ajoute tous les résultats de la course dans une liste foreach (Resultat resultat in resultatRep.ListeResultatsCourse(resultat.LaCourse.Id)) { listeResultats.Add(resultat); } // On classe les résultats par temps et on met à jour le classement List <Resultat> SortedList = listeResultats.OrderBy(o => o.TempsEnSecondes).ToList(); foreach (Resultat resultat in SortedList) { resultat.Classement = classement; classement++; } resultatRep.Save(resultat); d.Rows.Clear(); d.Refresh(); if (APArtirDeInfoCourse) { // On met à jour l'affichage dans les gridviews foreach (Resultat resultat in this.resultatRep.ListeResultatsCourse(IdDonne)) { Coureur coureur = coureurRep.ListeCoureur(resultat.LeCoureur.NumLicence)[0]; int age = coureur.CalculAge(coureur); string[] res = { resultat.Classement.ToString(), resultat.Temps.ToString(), resultat.NumDossard.ToString(), coureur.NumLicence.ToString(), coureur.Nom, coureur.Prenom, resultat.VitesseMoyenne.ToString(), resultat.AllureMoyenne.ToString(), coureur.Sexe, age.ToString() }; d.Rows.Add(res); } } else { foreach (Resultat resultat in this.resultatRep.ListeResultatsCoureur(IdDonne)) { Course course = courseRep.GetCourse(resultat.LaCourse.Id); string[] res = { course.Id.ToString(), course.Lieu, course.Date.Day.ToString() + "-" + course.Date.Month.ToString() + "-" + course.Date.Year.ToString(), course.Distance.ToString(), resultat.Classement.ToString(), resultat.NumDossard.ToString(), resultat.AllureMoyenne.ToString(), resultat.VitesseMoyenne.ToString() }; d.Rows.Add(res); } } this.Close(); }
/// <summary> /// Fonction permettant de gérer l'ajout d'un résultat /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonValider_Click(object sender, EventArgs e) { // Si les champs n'ont pas été remplis if ((this.comboBox1.Text == "") || this.textBoxDossard.Text == "") { MessageBox.Show("Veuillez remplir les champs !"); } //sinon else { // L'index du choix du comboBox est sauvegardé int choix = this.comboBox1.SelectedIndex; Resultat resultat = new Resultat(); if (courseConnue) // Si on part de la page informationCourse { resultat.LaCourse = course; // Le comboBox contient le coureur, on l'utilise donc pour remplir LeCoureur du résultat resultat.LeCoureur = listeCoureursNonParticipants[choix]; } else { // Le comboBox contient la course, on l'utilise donc pour remplir LaCourse du résultat resultat.LaCourse = listeCoursesNonParticipees[choix]; resultat.LeCoureur = coureur; } if (this.textBoxDossard.Text != "") { resultat.NumDossard = Int32.Parse(this.textBoxDossard.Text); } // On parse le texte du textbox de temps et on le met dans Temps du résultat resultat.Temps = TimeSpan.Parse(this.textBox1.Text); int age; // Remplissage des données de résultat resultat.TempsEnSecondes = resultat.CalculTempsEnSeconde(resultat.Temps); resultat.AllureMoyenne = resultat.TempsEnSecondes / 60 / resultat.LaCourse.Distance / 1000; //resultat.VitesseMoyenne = resultat.CalculVitesseMoyenne(course.Distance); resultat.VitesseMoyenne = resultat.LaCourse.Distance / 1000 / resultat.TempsEnSecondes / 60 / 60; // Gestion du classement List <Resultat> listeResultats = new List <Resultat>(); int classement = 1; //On ajoute tous les résultats de la course sélectionnée dans une liste de résultats foreach (Resultat resultat1 in resultatRep.ListeResultatsCourse(resultat.LaCourse.Id)) { listeResultats.Add(resultat1); } listeResultats.Add(resultat); // On trie la liste précédente en fonction des temps effectués List <Resultat> SortedList = listeResultats.OrderBy(o => o.TempsEnSecondes).ToList(); foreach (Resultat resultat1 in SortedList) { // On met à jour les classements resultat1.Classement = classement; classement++; resultatRep.Save(resultat1); } // On sauvegarde les résultats resultatRep.Save(resultat); if (courseConnue) { //On efface toutes les données de la GridView de la page informations d.Rows.Clear(); d.Refresh(); // Pour chaque résultat concernant la course sélectionnée foreach (Resultat resultat1 in this.resultatRep.ListeResultatsCourse(course.Id)) { // On ajoute la ligne au DataGridView Coureur coureur = coureurRep.ListeCoureur(resultat1.LeCoureur.NumLicence)[0]; age = coureur.CalculAge(coureur); string[] res1 = { resultat1.Classement.ToString(), resultat1.Temps.ToString(), resultat1.NumDossard.ToString(), coureur.NumLicence.ToString(), coureur.Nom, coureur.Prenom, resultat1.VitesseMoyenne.ToString(), resultat1.AllureMoyenne.ToString(),coureur.Sexe, age.ToString() }; d.Rows.Add(res1); } } else { //Mise à jour de l'affichage du GridView des resultats par coureur pour le coureur sélectionné sur la page d'accueil d.Rows.Clear(); d.Refresh(); foreach (Resultat resultat1 in this.resultatRep.ListeResultatsCoureur(coureur.NumLicence)) { Course course = courseRep.GetCourse(resultat1.LaCourse.Id); string[] res = { course.Id.ToString(), course.Lieu, course.Date.Day.ToString() + "-" + course.Date.Month.ToString() + "-" + course.Date.Year.ToString(), resultat1.Classement.ToString(), resultat.NumDossard.ToString(), course.Distance.ToString(), resultat1.AllureMoyenne.ToString(), resultat1.VitesseMoyenne.ToString(), resultat1.Temps.ToString() }; d.Rows.Add(res); } } this.Close(); } }