Exemple #1
0
 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;
 }
Exemple #2
0
        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); }
        }
Exemple #3
0
 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);
 }
Exemple #4
0
 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 { }
 }
Exemple #5
0
        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 { }
        }
Exemple #6
0
 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;
 }
Exemple #7
0
 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;
 }
Exemple #8
0
 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 { }
 }
Exemple #9
0
        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"); }
        }
Exemple #10
0
        //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;
        }