/// <summary> /// Suppression d'un coureur à partir de la recherche /// </summary> /// <param name="searchValue"></param> internal void DeleteCoureur(string searchValue) { if (searchValue == "") { MessageBox.Show("Vous devez chercher un coureur pour le supprimer", "Not Found"); return; } else { DialogResult result2 = MessageBox.Show("Êtes vous sûr de vouloir supprimer ce coureur ?", "Important Query", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result2 == DialogResult.Yes) { Coureur cour = new Coureur(); int idCoureur = coureurRepository.GetIdCoureurFromName(searchValue); IList <Coureur> coureurs = coureurRepository.GetAll(); foreach (Coureur c in coureurs) { if (c.IdCoureur == idCoureur) { coureurRepository.RemoveCoureur(c); } } } else { return; } } }
/// <summary> /// Fonction permettant de gérer l'ajout d'un participant (passage du gridview non participant à participant) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonAjouterParticipant_Click(object sender, EventArgs e) { // Si un coureur à été sélectionné if (this.dataGridViewLicencies.SelectedRows.Count > 0) { // On récupère le coureur sélectionné int selectedRowIndex = this.dataGridViewLicencies.SelectedCells[0].RowIndex; DataGridViewRow selectedRow = dataGridViewLicencies.Rows[selectedRowIndex]; int numLicenceSelection = Convert.ToInt32(selectedRow.Cells[0].Value); // On retire le coureur de la liste des participants et on l'ajoute à la liste des non participants foreach (Coureur coureur in coureurRep.GetAll()) { if (numLicenceSelection == coureur.NumLicence) { Coureur coureurSelectionne = new Coureur(); coureurSelectionne = coureur; this.listeCoureursParticipants.Add(coureurSelectionne); this.listeCoureursNonParticipants.Remove(coureur); } } } // On met à jour l'affichage des datagridview AfficherContenu(); }
/// <summary> /// Constructeur de la page d'ajout de résultats /// </summary> /// <param name="dataGridView"></param> /// <param name="aPartirDeCourse"></param> /// <param name="id"></param> public AjoutResultat(ref DataGridView dataGridView, bool aPartirDeCourse, int id) { courseConnue = aPartirDeCourse; d = dataGridView; InitializeComponent(); // Si course connue et donc id = idCourse if (aPartirDeCourse) { // On récupère la course course = courseRep.GetCourse(id); // On met à jour les affichages et on remplit la liste de non participants AfficherContenu(); // On récupère l'ensemble des coureurs qui ne participent pas à la course foreach (Coureur coureur in listeCoureursNonParticipants) { // Remplissage comboBox this.comboBox1.Items.Add(coureur.NumLicence.ToString() + " - " + coureur.Nom + " " + coureur.Prenom); } } else { // Changement du titre de la page this.labelCoureurOuCourse.Text = "Course"; // On récupère le coureur que l'on veut coureur = coureurRep.ListeCoureur(id)[0]; // Gestion affichage et listes AfficherContenu(); foreach (Course course in listeCoursesNonParticipees) { this.comboBox1.Items.Add("Course n°" + course.Id.ToString() + " " + course.Lieu); } } }
/// <summary> /// Constructeur /// </summary> /// <param name="nom"></param> /// <param name="dossard"></param> /// <param name="idCourse"></param> public ResultatsDetaillesCoureur(string nom, int dossard, int idCourse) { InitializeComponent(); //Si le nom est vide if (nom == "") { //Récupération des résultats grâce au num de dossard et à l'id de la course resultat = resultatRep.ListeResultatAvecDossard(dossard, idCourse)[0]; coureur = coureurRep.ListeCoureur(resultat.LeCoureur.NumLicence)[0]; } //Sinon else { //On récupère les resultats et le coureur grâce à son nom coureur = coureurRep.ListeCoureurAvecNom(nom)[0]; resultat = resultatRep.listeResultat(idCourse, coureur.NumLicence)[0]; } // On remplit les labels grace au résultat et au coureur sélectionnés this.labelClassement.Text = resultat.Classement.ToString(); this.labelDateNaissance.Text = coureur.DateDeNaissance.Day.ToString() + "-" + coureur.DateDeNaissance.Month.ToString() + "-" + coureur.DateDeNaissance.Year.ToString(); this.labelDossard.Text = resultat.NumDossard.ToString(); this.labelLicence.Text = coureur.NumLicence.ToString(); this.labelNom.Text = coureur.Nom; this.labelPrenom.Text = coureur.Prenom; this.labelSexe.Text = coureur.Sexe; this.labelAllure.Text = resultat.AllureMoyenne.ToString(); this.labelVitesse.Text = resultat.VitesseMoyenne.ToString(); this.labelTemps.Text = resultat.Temps.ToString(); }
/// <summary> /// This function convert the data give by ImportCsvBrut to Participation and transfer it to db /// </summary> /// <param name="dico"></param> /// <param name="course"></param> public static void Import(Dictionary <string, List <string> > dico, Course course) { ParticipationCSVToDB.CSVContainsRightColumnLabel(dico); ParticipationCSVToDB.CSVContainsColumnWithSameNumberOfElement(dico); Participation part; Coureur coureur; // Save data in db IParticipationRepository repo = new ParticipationRepository(); for (int i = 0; i < dico[dico.Keys.First()].Count; i++) { coureur = new Coureur(dico["nom"][i] , dico["prenom"][i] , dico["licence"][i] , dico["courriel"][i] , dico["sexe"][i] , Convert.ToDateTime(dico["annee_naissance"][i])); part = new Participation(); part.Course = course; part.Participant = coureur; part.NumDossard = Convert.ToInt32(dico["dossard"][i]); if (dico.Keys.Contains("temps")) { part.Temps = Convert.ToDouble(dico["temps"][i].Replace('.', ',')); } repo.Save(part); } }
public void TestParticipation() { ICoureurRepository coureurs = new CoureurRepository(); IParticipationRepository parts = new ParticipationRepository(); ICourseRepository courses = new CourseRepository(); parts.DeleteALL(); coureurs.DeleteALL(); courses.DeleteALL(); Coureur coureur1 = new Coureur("coureur1", "1", "XXXXXXXXX", "*****@*****.**", "X", DateTime.Today); Course course1 = new Course("", 42); Participation part1 = new Participation(coureur1, course1, 0, 42); coureur1.Participations.Add(part1); course1.Participations.Add(part1); coureurs.Save(coureur1); List <Coureur> result = coureurs.GetAll(); Assert.IsTrue(result[0] == coureur1); coureurs.DeleteALL(); }
public Coureur GetCoureurFromParti(Participation parti) { List <Coureur> query = Session.Query <Coureur>().Where((u) => u.ID == parti.Participant.ID).ToList(); Coureur coureur = (query.Count == 0) ? null : query[0]; return(coureur); }
public void NaissanceToAgeTest() { DateTime naissance = new DateTime(1997, 05, 24, 0, 0, 0); Coureur cour1 = new Coureur("Jouffroy", "Emma", "F", "courriel", "FFA", naissance); double ageDb = cour1.NaissanceToAge(); double ageAttended = 21; Assert.AreEqual(ageAttended, ageDb); }
/// <summary> /// Fonction gérant les affichages dans la page /// </summary> public void AfficherContenu() { foreach (Resultat resultat in this.resultatRep.ListeResultatsCourse(this.idCourseSelectionnee)) { 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() }; dataGridView1.Rows.Add(res); } }
public GestionCoureursViewModel(INavigation navigation) { if (Coureur == null) { Coureur = new Coureur(); ValiderCoureur = new Command(ValiderCoureurCommand); AnnulerCoureur = new Command(AnnulerCoureurCommand); Navigation = navigation; } }
public void Delete(Coureur coureur) { foreach (Participation part in coureur.Participations) { part.Course.Participations.Remove(part); part.Course = null; } Session.Delete(coureur); Session.Flush(); }
public void TestExist() { ICoureurRepository coureurs = new CoureurRepository(); coureurs.DeleteALL(); Coureur coureur1 = new Coureur("coureur1", "1", "XXXXXXXXX", "*****@*****.**", "X", DateTime.Today); coureurs.Save(coureur1); Assert.IsTrue(coureurs.Exist(coureur1)); }
public void SaveCoureurTest() { DateTime naissance = new DateTime(); Coureur cour1 = new Coureur("Jouffroy", "Emma", "F", "courriel", "FFA", naissance); coureurRepository.Save(cour1); IList <Coureur> coureurs = coureurRepository.GetAll(); Coureur lastSaveCoureur = coureurs[coureurs.Count - 1]; string nameSaved = lastSaveCoureur.Nom; Assert.AreEqual("Jouffroy", nameSaved); }
public static enrCoureur ToCoureurBasique(this Coureur Coureur) { return(new enrCoureur { _num = Coureur.Num, _nom = Coureur.Nom, _prenom = Coureur.Prenom, _sexe = Coureur.Sexe, _age = Coureur.Age, _einscrit = Coureur.Einscrit }); }
//IMPORT /// <summary> /// Fonction d'importation des coureurs d'une course, ne permet pas de remplir les résultats de ces coureurs /// </summary> /// <param name="courseName"></param> /// <param name="dgvCoureurs"></param> /// <param name="dgvParticipationsNameCourse"></param> /// <param name="dgvCourses"></param> /// <param name="btnCoursesRecherche"></param> /// <param name="btnCoursesReinit"></param> /// <param name="btnDelete"></param> /// <param name="isConnected"></param> internal void ImportCSVCoureur(string courseName, DataGridView dgvCoureurs, DataGridView dgvParticipationsNameCourse, DataGridView dgvCourses, Button btnCoursesRecherche, Button btnCoursesReinit, Button btnDelete, bool isConnected) { OpenFileDialog filePath = new OpenFileDialog(); if (filePath.ShowDialog() == DialogResult.OK) { if (!filePath.FileName.EndsWith(".csv")) { MessageBox.Show("Veuillez sélectionner un fichier .csv."); return; } //import coureurs StreamReader sr = new StreamReader(filePath.FileName); List <Coureur> import = new List <Coureur>(); sr.ReadLine(); while (!sr.EndOfStream) { string[] line = sr.ReadLine().Split(',', ';'); string nom = line[0]; string prenom = line[1]; DateTime dateNaissance = Convert.ToDateTime(line[2]); string sexe = line[3]; string courriel = line[4]; string licenceFFA = line[5]; Coureur coureur = new Coureur(nom, prenom, sexe, courriel, licenceFFA, dateNaissance); import.Add(coureur); } sr.Close(); //création dossards int[] dossards = new int[import.Count]; for (int i = 0; i < import.Count; i++) { SaveCoureur(import[i]); //faire une vérification que les coureurs importés n'aient pas déjà été importé (--> getall coureurs, boucle foreach du res du getall avec un bool initialisé en false, si coureurImport name && datenaissance == coureur[i] name && datenaissance alors --> coureurImport.IdCoureur == coureurI.IdCoureur et ne pas importer mais faire dossard quand meme) ImportCoureurForm formImport = new ImportCoureurForm(import[i].Nom, import[i].Prenom, courseName); DialogResult importResult = formImport.ShowDialog(); if (importResult == DialogResult.OK) { dossards[i] = formImport.Dossard; } } //ajout participants et dossards à sql Participation Course course = courseRepository.GetCourseInstanceFromName(courseName); this.AddImportCoureursParticipation(course, dossards, import); RefreshContenuCoureurs(dgvCoureurs); Search(courseName, dgvCourses, dgvParticipationsNameCourse, btnCoursesRecherche, btnCoursesReinit, btnDelete, isConnected); } }
public void TestAge() { Coureur coureur = new Coureur("test", "test", "TEST", "*****@*****.**", "test", new DateTime(1997, 2, 16)); Assert.IsTrue(coureur.Age == 21); Coureur coureur2 = new Coureur("test", "test", "TEST", "*****@*****.**", "test", new DateTime(1997, 12, 18)); Assert.IsTrue(coureur2.Age == 20); }
/// <summary> /// Fonction permettant de traduire une ligne CSV en un coureur et le renvoyer /// </summary> /// <param name="csvLine"></param> /// <returns></returns> public static Coureur CoureursFromCsv(string csvLine) { //Séparateur string[] values = csvLine.Split(';'); Coureur coureur = new Coureur(); coureur.Nom = values[0]; coureur.Prenom = values[1]; coureur.DateDeNaissance = DateTime.Parse(values[2]); coureur.Courriel = values[3]; return(coureur); }
public void RemoveCoureur(Coureur coureur) { IParticipationRepository participationRepository = new ParticipationRepository(); IList <Participation> participations = participationRepository.SearchParticipationByCoureurId(coureur.IdCoureur); foreach (Participation p in participations) { Session.Delete(p); Session.Flush(); } Session.Delete(coureur); Session.Flush(); }
/// <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(); }
public Coureur GetCoureurInstanceFromId(int id) { Coureur coureur = new Coureur(); IList <Coureur> coureurs = this.GetAll(); foreach (Coureur c in coureurs) { if (c.IdCoureur == id) { coureur = c; } } return(coureur); }
public CoureurRepoTest() { CoureurCollection = new List <Coureur>(); Coureur coureur1 = new Coureur("coureur1", "1", "XXXXXXXXX", "*****@*****.**", "X", DateTime.Today); CoureurCollection.Add(coureur1); Coureur coureur2 = new Coureur("coureur2", "2", "XXXXXXXXX", "*****@*****.**", "X", DateTime.Today); CoureurCollection.Add(coureur2); Coureur coureur3 = new Coureur("coureur3", "3", "XXXXXXXXX", "*****@*****.**", "X", DateTime.Today); CoureurCollection.Add(coureur3); }
private void lstCoureur_ItemTapped(object sender, ItemTappedEventArgs e) { if (Course.Coureurs == null) { Course.Coureurs = new List <Coureur>(); } Coureur coureur = (Coureur)e.Item; Course.Coureurs.Add(coureur); List.ItemsSource = null; List.ItemsSource = Course.Coureurs; Navigation.PopModalAsync(); }
public void SaveParticipationTest() { IList <Coureur> coureurs = coureurRepository.GetAll(); IList <Course> courses = courseRepository.GetAll(); Coureur coureurPartTest = coureurs[1]; Course coursePartTest = courses[1]; Participation part1 = new Participation(1, coureurPartTest, coursePartTest, "12", 3, 0.5, "allmoy"); participationRepository.Save(part1); IList <Participation> participations = participationRepository.GetAll(); Participation lastSaveParticipation = participations[participations.Count - 1]; int placeSaved = lastSaveParticipation.NumDossard; Assert.AreEqual(1, placeSaved); }
public void TestDeleteAll() { ICoureurRepository coureurs = new CoureurRepository(); Coureur coureur1 = new Coureur("coureur1", "1", "XXXXXXXXX", "*****@*****.**", "X", DateTime.Today); coureurs.Save(coureur1); Coureur coureur2 = new Coureur("coureur2", "2", "XXXXXXXXX", "*****@*****.**", "X", DateTime.Today); coureurs.Save(coureur2); coureurs.DeleteALL(); List <Coureur> result = coureurs.GetAll(); Assert.IsTrue(result.Count == 0); }
private void btnValider_Clicked(object sender, EventArgs e) { // Ici nous allons créer un coureur qui reprend les champs de la vue. Coureur coureur = new Coureur() { Age = Convert.ToInt32(entAge.Text), Nom = entNom.Text, Prenom = entPrenom.Text, Sexe = Convert.ToInt32(entSexe.Text) }; //Nous ajoutons à notre liste le coureur pour le "sauvegarder" App.Coureurs.Add(coureur); //Cela va permettre de revenir en arrière dans notre navigation. Donc ici de revenir sur ListeCourse Navigation.PopModalAsync(); }
public void Save(Coureur coureur) { if (Exist(coureur)) { Coureur coureur2 = GetAll().Where((u) => u.Nom == coureur.Nom).First(); coureur2.Prenom = coureur.Prenom; coureur2.LicenceFFA = coureur.LicenceFFA; coureur2.Mail = coureur.Mail; coureur2.Sexe = coureur.Sexe; coureur2.Participations = coureur.Participations; Session.SaveOrUpdate(coureur2); } else { Session.SaveOrUpdate(coureur); } Session.Flush(); }
public ParticipationRepoTest() { ParticipationCollection = new List <Participation>(); Coureur coureur1 = new Coureur("coureur1", "1", "XXXXXXXXX", "*****@*****.**", "X", DateTime.Today); Coureur coureur2 = new Coureur("coureur2", "2", "XXXXXXXXX", "*****@*****.**", "X", DateTime.Today); Coureur coureur3 = new Coureur("coureur3", "3", "XXXXXXXXX", "*****@*****.**", "X", DateTime.Today); Course course1 = new Course("course1", 1); Course course2 = new Course("course2", 2); Participation participation1 = new Participation(coureur1, course1, 042, 10); ParticipationCollection.Add(participation1); Participation participation2 = new Participation(coureur2, course1, 240, 12); ParticipationCollection.Add(participation2); Participation participation3 = new Participation(coureur1, course2, 420, 110); ParticipationCollection.Add(participation3); }
/// <summary> /// Fonction permettant d'afficher les résultats en fonction de l'âge des coureurs /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonValider_Click(object sender, EventArgs e) { this.dataGridView1.Rows.Clear(); this.dataGridView1.Refresh(); int ageMin = 0; int ageMax = 0; // Si les deux textBox sont bien remplis if (this.comboBox1.Text != "" && this.comboBox2.Text != "") { //Pour chaque résultat foreach (Resultat resultat in this.resultatRep.ListeResultatsCourse(this.idCourseSelectionnee)) { Coureur coureur = coureurRep.ListeCoureur(resultat.LeCoureur.NumLicence)[0]; int age = coureur.CalculAge(coureur); if (this.comboBox1.SelectedIndex == 0) { ageMin = 10; } else { ageMin = (comboBox1.SelectedIndex + 1) * 10; } if (this.comboBox1.SelectedIndex == 0) { ageMax = 20; } else { ageMax = (comboBox2.SelectedIndex + 2) * 10; } if (age >= ageMin && age < ageMax) { 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() }; dataGridView1.Rows.Add(res); } } } }
/// <summary> /// Fonction permettant al création du nouveau coureur /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonValider_Click(object sender, EventArgs e) { //Création d'un coureur et remplissage de ses caractéristiques selons les données du formulaire Coureur coureur = new Coureur(); coureur.Nom = this.textBoxNom.Text; coureur.Prenom = this.textBoxPrenom.Text; if (this.M.Checked) { coureur.Sexe = "M"; } else if (this.F.Checked) { coureur.Sexe = "F"; } coureur.Courriel = this.textBoxCourriel.Text; coureur.DateDeNaissance = this.dateTimePicker1.Value; coureurRep.Save(coureur); string[] resultat = { coureur.NumLicence.ToString(), coureur.Nom, coureur.Prenom, coureur.DateDeNaissance.ToString() }; d.Rows.Add(resultat); this.Close(); }
/// <summary> /// Constructeur de la classe /// </summary> /// <param name="numLicence"></param> public InformationsCoureurs(int numLicence) { InitializeComponent(); // Récupération du coureur sélectionné dans le DataGridView de la page d'accueil coureur = coureurRep.ListeCoureur(numLicence)[0]; // Remplisage des différents labels selon les informations contenues dans l'objet coureur this.labelNomPrenom.Text = coureur.Nom + " " + coureur.Prenom; this.labelNumLicence.Text = Convert.ToString(coureur.NumLicence); this.labelSexe.Text = coureur.Sexe; int age = coureur.CalculAge(coureur); this.labelAge.Text = Convert.ToString(age) + "ans"; AfficherContenu(); // Si pas identifié, boutons non visibles if (Accueil.identifiantEnregistre == "") { this.buttonModifierResultat.Visible = false; this.buttonModifierResultat.Enabled = false; this.buttonNouveauResultat.Visible = false; this.buttonNouveauResultat.Enabled = false; this.buttonSuppression.Visible = false; this.buttonSuppression.Enabled = false; } }