public c_courreur(c_courreur item) { Nom = item.Nom; Prenom = item.Prenom; DateNaissance = item.DateNaissance; Sexe = item.Sexe; Plaque = item.Plaque; PLaqueBis = item.PLaqueBis; numeroInterne = item.numeroInterne; Club = item.Club; Departement = item.Departement; CategorieNumInterne = item.CategorieNumInterne; Federation = item.Federation; NumeroLicence = item.NumeroLicence; }
void m_MAJListeCourreurs(string filter) { c_courreur c_test = new c_courreur(); c_categorie categ_test = new c_categorie(); filter = filter.ToUpper(); try { lVCourreurs.Items.Clear(); lBCourreurs.Items.Clear(); foreach (c_courreur courreur in v_listeCourreurs) { if (courreur.Nom.StartsWith(filter)) { c_test = courreur; // if (c_test.Prenom == "test") // { } var v_line = new ListViewItem(); v_line.Text = courreur.numeroInterne.ToString(); v_line.SubItems.Add(courreur.Nom); v_line.SubItems.Add(courreur.Prenom); v_line.SubItems.Add(v_listeCategories.Find(c => c.numeroInterne == courreur.CategorieNumInterne).Nom); v_line.SubItems.Add(courreur.Plaque.ToString() + " / " + courreur.PLaqueBis.ToString()); lVCourreurs.Items.Add(v_line); if ((courreur.Plaque == 0) & (courreur.Nom.StartsWith(tbFiltreNom.Text))) { lBCourreurs.Items.Add(courreur.Nom + " ... " + courreur.Prenom); } } } } catch { MessageBox.Show("Pb MAJ Liste courreurs " + c_test.Nom + c_test.Prenom); } }
void m_MAJLVCourreursInscrits() { lVCourreursInscrits.Items.Clear(); foreach (int index in v_listeInscrits) { try { ListViewItem lv = new ListViewItem(); c_courreur courreur = new c_courreur(v_listeCourreurs.Find(c => c.numeroInterne == index)); lv.Text = courreur.Nom; lv.SubItems.Add(courreur.Prenom); lv.SubItems.Add(v_listeCategories.Find(c => c.numeroInterne == courreur.CategorieNumInterne).Nom); lv.SubItems.Add(courreur.Plaque.ToString() + " / " + courreur.PLaqueBis.ToString()); lVCourreursInscrits.Items.Add(lv); //supprime du listboxCourreurs string name = courreur.Nom + " ... " + courreur.Prenom; int index1 = 0; foreach (string line in lBCourreurs.Items) { if (line == name) { lBCourreurs.Items.RemoveAt(index1); break; } else index1++; } } catch { } } m_MAJListeCourreurs(""); m_MAJAffichageCourse(null); }
void m_chargerParametres() { try { //charger categories et courreurs cBFederations.Items.Clear(); foreach (Federations v_fede in Enum.GetValues(typeof(Federations))) { cBFederations.Items.Add(v_fede.ToString()); } c_Ini ini = new c_Ini("Categories.ini"); int index = 1; c_categorie categ = new c_categorie(); ini.m_Read(categ, index.ToString()); while (index <= c_categorie.dernierNumInterne) { if (categ.Nom != "") { v_listeCategories.Add(new c_categorie(categ)); } index++; ini.m_Read(categ, index.ToString()); } ini = new c_Ini("Courreurs.ini"); index = 1; c_courreur courreur = new c_courreur(); ini.m_Read(courreur, index.ToString()); while (index <= c_courreur.dernierNumInterne) { courreur.Plaque = 0; courreur.PLaqueBis = 0; v_listeCourreurs.Add(new c_courreur(courreur)); index++; ini.m_Read(courreur, index.ToString()); } m_MAJListeCourreurs(""); m_MAJListeCategories(); //cherche courses existantes string[] courses = (from c in File.ReadAllLines(new FileInfo(Application.ExecutablePath).DirectoryName + "\\courses.ini") where c.StartsWith("[") select c.Replace("[", "").Replace("]", "")).ToArray(); lBCoursesExistantes.Items.AddRange(courses); } catch { } }
void m_MAJAffichageCourse(c_courreur CourreurSaisi) { try { lBClassement.Items.Clear(); lvCourse.Items.Clear(); lvCourse.Items.AddRange(m_remplirLVCourse(CourreurSaisi).ToArray()); Application.DoEvents(); try { ListViewItem lv = (from ListViewItem l in lvCourse.Items where int.Parse(l.SubItems[1].Text) == CourreurSaisi.Plaque select l).First(); int height = lvCourse.Height / 18; if (lv.Index >= height) { lvCourse.TopItem = lvCourse.Items[lv.Index - height + 2]; } } catch { } try { c_categorie categ = v_listeCategories.Find(c => c.Nom == tCCategorieCourse.SelectedTab.Text); tbNbrToursACourrir.Text = categ.NbrTours.ToString(); if (lvCourse.Items[0].SubItems[5].Text != "") { int nbrToursCourrus = int.Parse(lvCourse.Items[0].SubItems[5].Text); tBNbrToursRestant.Text = (categ.NbrTours - nbrToursCourrus).ToString(); } } catch { tBNbrToursRestant.Text = "**"; tbNbrToursACourrir.Text = "**"; } } catch { } }
public List<ListViewItem> m_remplirLVCourse(c_courreur CourreurSaisi) { int v_nbrToursMax = v_listeCategories.Max(c => c.NbrTours); bool v_nbrTourMaxFini = false; int place = 1; List<ListViewItem> result = new List<ListViewItem>(); foreach (string line in v_Course.listeInscritsEnString.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries)) { try { c_courreur courreur = v_listeCourreurs.Find(c => c.numeroInterne == int.Parse(line.Substring(0, 3))); lBClassement.Items.Add(string.Format("{0:000},{1:00000},{2:000}", 999 - courreur.nbrTours, courreur.TempsEnSecondes, courreur.numeroInterne)); } catch { MessageBox.Show("Pb identification courreur ds m_remplirLVCourse " + line); } } int v_tempsRef = 0; int v_toursRef = 0; int v_nbrFini = 0; foreach (string line in lBClassement.Items) { int numeroInterne = int.Parse(line.ToString().Substring(10, 3)); c_courreur c = v_listeCourreurs.Find(x => x.numeroInterne == numeroInterne); if (v_listeCategories.Find(categ => categ.numeroInterne == c.CategorieNumInterne).Nom.Contains(v_filtreCourreur)) { if (place == 1) { v_tempsRef = c.TempsEnSecondes; v_toursRef = c.nbrTours; } if (c.nbrTours >= v_nbrToursMax) { v_nbrTourMaxFini = true; } ListViewItem lV = new ListViewItem(string.Format("{0:000}", place)); c_categorie categ_ici = v_listeCategories.Find(categ => categ.numeroInterne == c.CategorieNumInterne); lV.SubItems.Add(c.Plaque.ToString() + " / " + c.PLaqueBis.ToString()); lV.SubItems.Add(c.Nom); lV.SubItems.Add(c.Prenom); lV.SubItems.Add(categ_ici.Nom); lV.SubItems.Add(c.nbrTours.ToString()); lV.SubItems.Add(string.Format("{0:00}:{1:00}.{2:00}", c.TempsEnSecondes / 3600, (c.TempsEnSecondes / 60) % 60, c.TempsEnSecondes % 60)); if (place > 1) { if (c.nbrTours == v_toursRef) { if ((c.TempsEnSecondes - v_tempsRef) > 0) { lV.SubItems.Add(string.Format("{0:00}:{1:00}.{2:00}", (c.TempsEnSecondes - v_tempsRef) / 3600, ((c.TempsEnSecondes - v_tempsRef) / 60) % 60, (c.TempsEnSecondes - v_tempsRef) % 60)); } } else { lV.SubItems.Add((v_toursRef - c.nbrTours).ToString() + " tour(s)"); } } //evite afficher courreur sans Plaque //filtre les courreurs non termines bool v_ajouter = true; if (c.nbrTours >= categ_ici.NbrTours) { v_ajouter = false; } if (v_nbrTourMaxFini) { if (c.TempsEnSecondes > v_tempsRef) { v_ajouter = false; } } if (!v_ajouter) { lV.SubItems[0].BackColor = Color.Red; v_nbrFini++; } v_ajouter |= !cBEncoreEnCourse.Checked; //met le courreur saisi en vert if (CourreurSaisi != null) { if ((c == CourreurSaisi) & (lV.SubItems[0].BackColor != Color.Red)) { lV.SubItems[0].BackColor = Color.Lime; Application.DoEvents(); } } if ((c.Plaque > 0) & (v_ajouter)) { result.Add(lV); } Application.DoEvents(); place++; } } tbNbrEncoreEnCourse.Text = (place - v_nbrFini - 1).ToString(); return result; }
private void e_tBSaisieCourreur_TextChanged(object sender, EventArgs e) { if (!timerCourse.Enabled) { tBSaisieCourreur.Text = ""; return; } try { if (tBSaisieCourreur.Text.Length == 3) { int Plaque = int.Parse(tBSaisieCourreur.Text); c_courreur courreur = v_listeCourreurs.Find(c => (c.Plaque == Plaque) || (c.PLaqueBis == Plaque)); c_categorie categorie = v_listeCategories.Find(ca => ca.numeroInterne == courreur.CategorieNumInterne); TimeSpan tS = DateTime.Now - v_depart; int chrono = (int)tS.TotalSeconds; chrono -= categorie.DecalageDepartEnSecondes; //controle delai securite if ((chrono - courreur.TempsEnSecondes) > v_delaiSecuriteEnSecondes) { int nbrToursCateg = 99; try { nbrToursCateg = v_listeCategories.Find(c => c.numeroInterne == courreur.CategorieNumInterne).NbrTours; } catch { } if (courreur.nbrTours < nbrToursCateg) { courreur.nbrTours++; } courreur.TempsEnSecondes = chrono; lBPassage.Items.Add(string.Format("{0:000} ... {1:00}:{2:00}.{3:00}", Plaque, tS.Hours, tS.Minutes, tS.Seconds)); m_MAJAffichageCourse(courreur); tBSaisieCourreur.Text = ""; lDernierCourreur.Text = "Dernier courreur saisi : " + courreur.Nom + " " + courreur.Prenom + " ... " + categorie.Nom; dernierCourreurSaisi = courreur; } else { lBPassage.Items.Add(string.Format("{0:000} ... trop rapide", Plaque)); tBSaisieCourreur.Text = ""; } } } catch { TimeSpan tS = DateTime.Now - v_depart; lBPassage.Items.Add(tBSaisieCourreur.Text + string.Format(" *** {0:00}:{1:00}.{2:00}", tS.Hours, tS.Minutes, tS.Seconds)); tBSaisieCourreur.Text = ""; } lBPassage.SelectedIndex = lBPassage.Items.Count - 1; lBPassage.TopIndex = lBPassage.SelectedIndex; }
private void e_lVCourreurs_SelectedIndexChanged(object sender, EventArgs e) { /* if (tBNomCourreur.Text != "") { MessageBox.Show("Enregistrez ce courreur ou supprimez le nom"); return; } */ try { int indexCourreur = v_listeCourreurs.FindIndex(c => (c.Nom == lVCourreurs.SelectedItems[0].SubItems[1].Text) & (c.Prenom == lVCourreurs.SelectedItems[0].SubItems[2].Text)); c_courreur courreur = new c_courreur(v_listeCourreurs[indexCourreur]); tBNomCourreur.Text = courreur.Nom; tBPrenomCourreur.Text = courreur.Prenom; tBNumeroLicence.Text = courreur.NumeroLicence; tBNumeroInterneCourreur.Text = courreur.numeroInterne.ToString(); tBPlaque.Text = courreur.Plaque.ToString(); tBPlaqueBis.Text = courreur.PLaqueBis.ToString(); cBCategorieCourreur.Text = v_listeCategories.Find(c => c.numeroInterne == courreur.CategorieNumInterne).Nom; dTPCourreur.Value = courreur.DateNaissance; cBDepartement.Text = courreur.Departement; cBFederations.Text = courreur.Federation; tBClubCourreur.Text = courreur.Club; rBMasculin.Checked = courreur.Sexe; rBFeminin.Checked = !rBMasculin.Checked; } catch { } }
private void e_cmdSauvegarderCourreur_Click(object sender, EventArgs e) { try { if ((tBNomCourreur.Text == "") || (tBPrenomCourreur.Text == "")) { return; } c_courreur v_courreur = new c_courreur(); v_courreur.Nom = tBNomCourreur.Text; v_courreur.Prenom = tBPrenomCourreur.Text; v_courreur.CategorieNumInterne = v_listeCategories.Find(c => c.Nom == cBCategorieCourreur.Text).numeroInterne; v_courreur.Club = tBClubCourreur.Text; v_courreur.DateNaissance = dTPCourreur.Value; v_courreur.Departement = cBDepartement.Text; v_courreur.Federation = cBFederations.Text; v_courreur.NumeroLicence = tBNumeroLicence.Text; v_courreur.Sexe = !rBFeminin.Checked; try { v_courreur.Plaque = int.Parse(tBPlaque.Text); if (tBPlaqueBis.Visible) { v_courreur.PLaqueBis = int.Parse(tBPlaqueBis.Text); } } catch { } //cherche si existe deja int index = v_listeCourreurs.FindIndex(courreur => (courreur.Nom == v_courreur.Nom) & (courreur.Prenom == v_courreur.Prenom)); if ((index > -1) && (tBNumeroInterneCourreur.Text == "")) { if (MessageBox.Show("Ce courreur existe deja, voulez vous le remplacer ?", "DOUBLON", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } if (tBNumeroInterneCourreur.Text == "") { v_courreur.numeroInterne = c_courreur.dernierNumInterne + 1; c_courreur.dernierNumInterne++; } else { v_courreur.numeroInterne = int.Parse(tBNumeroInterneCourreur.Text); v_listeCourreurs.RemoveAt(index); } v_listeCourreurs.Add(v_courreur); c_Ini v_ini = new c_Ini("Courreurs.ini"); v_ini.m_Write(v_courreur, v_courreur.numeroInterne.ToString()); //regarde si pilote à inscrire dans course bool v_reussi = true; if (cBInscrireDansCourse.Checked) { //verifie si deja dans liste if (!v_listeInscrits.Contains(v_courreur.numeroInterne)) { v_reussi = m_inscrireCourreur(v_courreur.Nom + " ... " + v_courreur.Prenom, tBPlaque.Text, tBPlaqueBis.Text); } } else { lBCourreurs.Items.Add(v_courreur.Nom + " ... " + v_courreur.Prenom); } if (v_reussi) { tBNomCourreur.Text = ""; tBPrenomCourreur.Text = ""; tBNumeroInterneCourreur.Text = ""; m_MAJListeCourreurs(""); m_sauvegarderCourse(); tBPlaque.Text = ""; tBPlaqueBis.Text = ""; tBNomCourreur.Focus(); } } catch { MessageBox.Show("Probleme de sauvegarde"); } }
//nouveauclassement pour mise à jour des places, sinon fleches n'apparaissent qu'un fois public List<ListViewItem> m_remplirLVCourse(c_courreur CourreurSaisi, bool NouveauClassement, bool Recursif) { int v_nbrToursMax = v_listeCategories.Max(c => c.NbrTours); bool v_nbrTourMaxFini = false; int place = 1; List<ListViewItem> result = new List<ListViewItem>(); //classe par categ aussi if ((Recursif) && (NouveauClassement) && (CourreurSaisi != null)) { if (v_filtreCourreur == "") { try { v_filtreCourreur = (v_listeCategories.Find(categ => categ.numeroInterne == CourreurSaisi.CategorieNumInterne)).Nom; m_remplirLVCourse(CourreurSaisi, true, false); } catch { } v_filtreCourreur = ""; } else { string past = v_filtreCourreur; v_filtreCourreur = ""; m_remplirLVCourse(CourreurSaisi, true, false); v_filtreCourreur = past; } } #region Classe les coureurs lBClassement.Items.Clear(); foreach (string line in v_Course.listeInscritsEnString.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries)) { try { c_courreur courreur = v_listeCourreurs.Find(c => c.numeroInterne == int.Parse(line.Substring(0, 3))); lBClassement.Items.Add(string.Format("{0:000},{1:00000},{2:000}", 999 - courreur.nbrTours, courreur.TempsEnSecondes, courreur.numeroInterne)); } catch { MessageBox.Show("Pb identification courreur ds m_remplirLVCourse " + line); } } #endregion int v_tempsRef = 0; int v_toursRef = 0; int v_nbrFini = 0; int v_placeGenerale = 0; int v_placeCategorie = 0; foreach (string line in lBClassement.Items) { int numeroInterne = int.Parse(line.ToString().Substring(10, 3)); c_courreur c = v_listeCourreurs.Find(x => x.numeroInterne == numeroInterne); v_placeGenerale++; if (v_listeCategories.Find(categ => categ.numeroInterne == c.CategorieNumInterne).Nom.Contains(v_filtreCourreur)) { v_placeCategorie++; if (place == 1) { v_tempsRef = c.TempsEnSecondes; v_toursRef = c.nbrTours; } if (c.nbrTours >= v_nbrToursMax) { v_nbrTourMaxFini = true; } ListViewItem lV = new ListViewItem(string.Format("{0:000}", place)); c_categorie categ_ici = v_listeCategories.Find(categ => categ.numeroInterne == c.CategorieNumInterne); if (v_Course.DoublerPlaque) { lV.SubItems.Add(c.Plaque.ToString() + " / " + c.PLaqueBis.ToString()); } else { lV.SubItems.Add(c.Plaque.ToString()); } #region ajoute une fleche si chgt de place string v_nomFinal = c.Nom; if (NouveauClassement) { if (v_filtreCourreur == "") { if (c.PlaceGenerale != 0) { if (c.PlaceGenerale < v_placeGenerale) { c.ClassementGeneral = -1; } if (c.PlaceGenerale > v_placeGenerale) { c.ClassementGeneral = 1; } if (c.PlaceGenerale == v_placeGenerale) { c.ClassementGeneral = 0; } } } else { if (c.PlaceCategorie != 0) { if (c.PlaceCategorie < v_placeCategorie) { c.ClassementCategorie = -1; } if (c.PlaceCategorie > v_placeCategorie) { c.ClassementCategorie = 1; } if (c.PlaceCategorie == v_placeCategorie) { c.ClassementCategorie = 0; } } } } if (v_filtreCourreur == "") { switch (c.ClassementGeneral) { case -1: v_nomFinal += " ↓"; break; case 1: v_nomFinal += " ↑"; break; } } else { switch (c.ClassementCategorie) { case -1: v_nomFinal += " ↓"; break; case 1: v_nomFinal += " ↑"; break; } } #endregion lV.SubItems.Add(v_nomFinal); lV.SubItems.Add(c.Prenom); lV.SubItems.Add(categ_ici.Nom); lV.SubItems.Add(c.nbrTours.ToString()); lV.SubItems.Add(string.Format("{0:00}:{1:00}.{2:00}", c.TempsEnSecondes / 3600, (c.TempsEnSecondes / 60) % 60, c.TempsEnSecondes % 60)); if (place > 1) { if (c.nbrTours == v_toursRef) { if ((c.TempsEnSecondes - v_tempsRef) > 0) { lV.SubItems.Add(string.Format("{0:00}:{1:00}.{2:00}", (c.TempsEnSecondes - v_tempsRef) / 3600, ((c.TempsEnSecondes - v_tempsRef) / 60) % 60, (c.TempsEnSecondes - v_tempsRef) % 60)); } } else { lV.SubItems.Add((v_toursRef - c.nbrTours).ToString() + " tour(s)"); } } //evite afficher courreur sans Plaque //filtre les courreurs non termines bool v_ajouter = true; if (c.nbrTours >= categ_ici.NbrTours) { v_ajouter = false; } if (v_nbrTourMaxFini) { if (c.TempsEnSecondes > v_tempsRef) { v_ajouter = false; } } if (!v_ajouter) { lV.SubItems[0].BackColor = Color.Red; v_nbrFini++; } v_ajouter |= !cBEncoreEnCourse.Checked; //met le courreur saisi en vert if (CourreurSaisi != null) { if ((c == CourreurSaisi) & (lV.SubItems[0].BackColor != Color.Red)) { lV.SubItems[0].BackColor = Color.Lime; Application.DoEvents(); } } if ((c.Plaque > 0) & (v_ajouter)) { result.Add(lV); } if (NouveauClassement) { if (v_filtreCourreur != "") { c.PlaceCategorie = v_placeCategorie; } else { c.PlaceGenerale = v_placeGenerale; } } Application.DoEvents(); place++; } } tbNbrEncoreEnCourse.Text = (place - v_nbrFini - 1).ToString(); return result; }