コード例 #1
0
        public List <MatchsModele> getMatchsEquipe(Guid equipeId, QuartersModele quarter)
        {
            try
            {
                List <MatchsModele> lMatchs = this.GetListeObject()
                                              .Where(xx => xx.matchDate <= quarter.dateFin)
                                              .Where(xx => xx.matchDate >= quarter.dateDebut)
                                              .Where(xx => xx.equipe1Id == equipeId || xx.equipe2Id == equipeId)
                                              .OrderBy(xx => xx.matchDate)
                                              .ToList();
                return(lMatchs);
            }
            catch (TechnicalError ce)
            {
                throw ce;
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #2
0
        // A partir de l'equipeID et du matchID renvoie la feuille de match existante ou un vide si jamais elle n'existe pas
        public static DataTable getMatchEquipe(Guid equipeId, Guid matchId, DateTime matchDate)
        {
            try
            {
                // récupère feuilleID si il existe ou en crée un
                FeuillesMatchService fms = new FeuillesMatchService();
                Guid feuilleId           = fms.UpdateFeuille(matchId, equipeId);

                // récupère les joueurs déjà inscrits
                List <dynamic> lstDy = new List <dynamic>();
                lstDy.Add(feuilleId);
                JoueursParticipationService jps = new JoueursParticipationService();
                DataView jpv = jps.loadWithParameter("JoueursInscrits", lstDy);

                //récupère les joueurs dans l'équipe au moment du match
                List <dynamic> lstDy2 = new List <dynamic>();
                lstDy2.Add(equipeId);
                lstDy2.Add(matchDate);
                TransfertsHistoryService ths = new TransfertsHistoryService();
                DataView thv = ths.loadWithParameter("JoueursEquipe", lstDy2);

                JoueursService js = new JoueursService();
                DataView       jv = js.loadAllData();

                CartesJaunesService cjs = new CartesJaunesService();
                DataView            cjv = cjs.loadAllData();

                CartesRougesService crs = new CartesRougesService();
                DataView            crv = crs.loadAllData();

                QuartersService qs      = new QuartersService();
                QuartersModele  quarter = qs.getAQuarter(matchDate);

                //obtient la liste de match de l'équipe pour le quarter et triée par date ascendante
                MatchsService       ms      = new MatchsService();
                DataView            mv      = ms.loadAllData();
                List <MatchsModele> lMatchs = ms.getMatchsEquipe(equipeId, quarter);



                DataTable feuille = new TableFeuilleMatch().getTable();
                DataRow   row;

                foreach (DataRowView dr in thv)
                {
                    row = feuille.NewRow();

                    //va chercher le prénom et le nom du joueur
                    int i = 0;
                    while ((Guid)dr["joueurId"] != (Guid)jv[i]["joueurId"])
                    {
                        i++;
                    }

                    row[0] = (String)jv[i]["prenom"] + " " + (String)jv[i]["nom"];

                    //va chercher le nombre de cartons jaunes actifs dans le quarter
                    row[1] = CountCartesJaunesActives((Guid)dr["joueurId"], equipeId, quarter);

                    //va chercher le nombre de suspensions restantes à un carton rouge dans le quarter
                    row[2] = 0;

                    //récupère la liste de cartons rouge du joueur pour le quarter
                    List <Guid> lMatchsAvecCartons = crs.getMatchsCartonsRouges((Guid)dr["joueurId"], quarter);
                    //vérifie si il en a reçu
                    if (lMatchsAvecCartons.Any())
                    {
                        int positionMatch = lMatchs.IndexOf(lMatchs.Where(xx => xx.matchDate == matchDate)
                                                            .FirstOrDefault());
                        foreach (Guid Id in lMatchsAvecCartons)
                        {
                            int positionCarton = lMatchs.IndexOf(lMatchs.Where(xx => xx.matchId == Id)
                                                                 .FirstOrDefault());
                            //vérifie que le match en cours est affecté par le carton
                            if (positionMatch - positionCarton > 0 && positionMatch - positionCarton < 3)
                            {
                                row[2] = 4 - positionMatch - positionCarton;
                            }
                        }
                    }

                    //va chercher le nombre de match restants pour l'équipe ce quarter
                    row[3] = lMatchs.Where(xx => xx.isPlayed == false)
                             .Count();


                    // va voir si le joueur est déjà sur la feuille de match
                    row[4] = false;

                    for (i = 0; i < jpv.Count; i++)
                    {
                        if ((Guid)dr["joueurId"] == (Guid)jpv[i]["joueurId"])
                        {
                            row[4] = true;
                        }
                    }

                    // rajoute le joueurId pour contrôle
                    row[5] = (Guid)dr["joueurId"];

                    feuille.Rows.Add(row);
                }
                feuille.AcceptChanges();
                return(feuille);
            }

            catch (TechnicalError ce)
            {
                throw ce;
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #3
0
        public static List <MatchsModele> getListeMatchExclusionCartonRouge(Guid joueurId, Guid equipeId, QuartersModele quarter)
        {
            try
            {
                MatchsService ms = new MatchsService();

                //obtient la liste des matchs joués par l'équipe du joueur en ordre chronologique ce quarter
                List <MatchsModele> lMatchsEquipe = ms.getMatchParticipationParUneEquipeParQuarter(equipeId, quarter.dateDebut, quarter.dateFin).OrderBy(x => x.matchDate).ToList();

                CartesRougesService cs = new CartesRougesService();

                //obtient la liste des matchs avec cartons rouges du joueur dans le quarter
                List <Guid> lmatchsAvecCartonsRouges = cs.getMatchsCartonsRouges(joueurId, quarter);

                List <MatchsModele> lMatchsExclusionJoueur = new List <MatchsModele>();

                //vérifie si il y a des matchs avec cartons rouges
                if (lmatchsAvecCartonsRouges.Any())
                {
                    foreach (Guid matchId in lmatchsAvecCartonsRouges)
                    {
                        int ind = lMatchsEquipe.IndexOf(lMatchsEquipe.First(x => x.matchId == matchId));
                        int i   = ind++;
                        while (i < lMatchsEquipe.Count && i < ind + 3)
                        {
                            lMatchsExclusionJoueur.Add(lMatchsEquipe[i]);
                            i++;
                        }
                    }
                }

                return(lMatchsExclusionJoueur);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #4
0
        //
        public static int CountCartesJaunesActives(Guid joueurId, Guid equipeId, QuartersModele quarter)
        {
            try
            {
                MatchsService       ms  = new MatchsService();
                CartesJaunesService cjs = new CartesJaunesService();

                //obtient la liste des matchs joués par le joueur en ordre chronologique ce quarter
                List <MatchsModele> lMatchsJoueur = ms.getMatchParticipationParUnJoueurParQuarter(joueurId, quarter.dateDebut, quarter.dateFin).OrderBy(x => x.matchDate).ToList();

                //obtient la liste des matchs joués par l'équipe du joueur en ordre chronologique ce quarter
                List <MatchsModele> lMatchsEquipe = ms.getMatchParticipationParUneEquipeParQuarter(equipeId, quarter.dateDebut, quarter.dateFin).OrderBy(x => x.matchDate).ToList();

                //obtient la liste des cartons jaunes du joueur
                List <CartonsJaunesModele> lCartonsJoueur = cjs.getCartonsDuJoueur(joueurId);
                List <MatchsModele>        lMatchAvecCartonJauneDansQuarter = new List <MatchsModele>();


                //rempli la liste des index des matchs dnas lesquels des cartons jaunes ont été obtenus par le joueur lors du quarter
                foreach (CartonsJaunesModele carton in lCartonsJoueur)
                {
                    if (lMatchsEquipe.Any(x => x.matchId == carton.matchId))
                    {
                        lMatchAvecCartonJauneDansQuarter.Add(lMatchsEquipe.First(x => x.matchId == carton.matchId));
                    }
                }

                int count = lMatchAvecCartonJauneDansQuarter.Count;

                if (lMatchsEquipe.Count != lMatchsJoueur.Count)
                {
                    if (lMatchAvecCartonJauneDansQuarter.Any())
                    {
                        //trie par ordre chronologique les matchs avec cartons
                        lMatchAvecCartonJauneDansQuarter = lMatchAvecCartonJauneDansQuarter.OrderBy(x => x.matchDate).ToList();

                        List <MatchsModele> lMatchsSansLeJoueur = new List <MatchsModele>();

                        //récupère la liste des exclusions du joueurs
                        List <MatchsModele> lMatchsExclusionJoueur = getListeMatchExclusionCartonRouge(joueurId, equipeId, quarter);

                        foreach (MatchsModele match in lMatchsEquipe)
                        {
                            if (!lMatchsJoueur.Contains(match) && !lMatchsExclusionJoueur.Contains(match))
                            {
                                lMatchsSansLeJoueur.Add(match);
                            }
                        }

                        for (int j = 0; j < lMatchAvecCartonJauneDansQuarter.Count; j++)
                        {
                            if (lMatchsSansLeJoueur.Any(x => x.matchDate > lMatchAvecCartonJauneDansQuarter[j].matchDate))
                            {
                                lMatchsSansLeJoueur.Remove(lMatchsSansLeJoueur.First(x => x.matchDate > lMatchAvecCartonJauneDansQuarter[j].matchDate));
                                count--;
                            }
                        }
                    }
                }
                return(count);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #5
0
        // récupère le nombre de cartons jaunes pour une équipe à un quarter
        public int getCartesJaunes(JoueursModele joueur, List <MatchsModele> lMatchs, QuartersModele quarter)
        {
            List <CartonsJaunesModele> lcj = new CartesJaunesService().ListAll();
            int count = 0;

            foreach (CartonsJaunesModele cj in lcj)
            {
                if (cj.joueurId == joueur.joueurId)
                {
                    foreach (MatchsModele match in lMatchs)
                    {
                        if (match.matchId == cj.matchId && match.matchDate <= quarter.dateFin && match.matchDate >= quarter.dateDebut)
                        {
                            count++;
                        }
                    }
                }
            }
            return(count);
        }
コード例 #6
0
        public DataTable getClassementEquipe(DateTime date)
        {
            try
            {
                //crée la table vide de classement d'équipe
                DataTable oTable = new TableClassementJoueur().getTable();

                //récupère le championnat lié à l'année
                ChampionnatsModele championnat = new ChampionnatService().getChampionnat(date.Year);

                //récupère les joueurs de tout le championnat
                List <Guid>          lId      = new TransfertsService().getListeJoueurChampionnat(championnat);
                List <JoueursModele> Ljoueurs = new JoueursService().getListeJoueurs(lId);

                DataRow row;

                foreach (JoueursModele joueur in Ljoueurs)
                {
                    //récupère la liste d'équipe pour laquelle un joueur a joué
                    List <EquipesModele> lEquipe = new TransfertsService().getEquipesDatees(joueur, championnat);

                    //récupère les matchs de l'équipe du 1/1/date.year à date compris
                    List <MatchsModele> matchs = new MatchsService().ListesMatchsListeEquipeDatee(lEquipe, date);

                    //récupère les quarters
                    QuartersModele quarter1 = getQuarter(championnat, 1);
                    QuartersModele quarter2 = getQuarter(championnat, 2);

                    row = oTable.NewRow();

                    //assigne le nom de l'équipe
                    row["Joueur :"] = joueur.prenom + " " + joueur.nom;

                    //assigne les goals du Q1
                    row["Goals Q1 :"] = getGoals(joueur, matchs, quarter1);

                    //assigne les goals du Q2
                    row["Goals Q2 :"] = getGoals(joueur, matchs, quarter2);

                    //calcule le total de goals
                    row["Goals Totaux"] = (int)row["Goals Q1 :"] + (int)row["Goals Q2 :"];

                    row["Cartes Jaunes Q1 :"] = getCartesJaunes(joueur, matchs, quarter1);

                    row["Cartes Jaunes Q2 :"] = getCartesJaunes(joueur, matchs, quarter2);

                    row["Cartes Jaunes Totales"] = (int)row["Cartes Jaunes Q1 :"] + (int)row["Cartes Jaunes Q2 :"];

                    row["Cartes Rouges Q1 :"] = getCartesRouges(joueur, matchs, quarter1);

                    row["Cartes Rouges Q2 :"] = getCartesRouges(joueur, matchs, quarter2);

                    row["Cartes Rouges Totales"] = (int)row["Cartes Rouges Q1 :"] + (int)row["Cartes Rouges Q2 :"];

                    row["CartonsValeur"] = (int)row["Cartes Jaunes Totales"] + (3 * (int)row["Cartes Rouges Totales"]);

                    oTable.Rows.Add(row);
                }
                oTable.AcceptChanges();
                return(oTable);
            }
            catch (TechnicalError oErreur)
            {
                throw oErreur;
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #7
0
        public DataTable getClassementEquipe(DateTime date)
        {
            try
            {
                //crée la table vide de classement d'équipe
                DataTable oTable = new TableClassementEquipe().getTable();

                //récupère le championnat lié à l'année
                ChampionnatsModele championnat = new ChampionnatService().getChampionnat(date.Year);

                //récupère les participations aux championnat
                List <EquipesParticipationModele> lEquipePart = new EquipesParticipationService().ListeEquipeChampionnat(championnat);

                DataRow row;

                foreach (EquipesParticipationModele participation in lEquipePart)
                {
                    //récupère l'objet équipe en fonction de la participation
                    EquipesModele equipe = new EquipesService().getEquipe(participation.equipeId);

                    //récupère les matchs de l'équipe  du 1/1/date.year à date compris
                    List <MatchsModele> matchs = new MatchsService().ListesMatchsOneEquipeDatee(equipe, date);

                    //récupère les quarters
                    QuartersModele quarter1 = getQuarter(championnat, 1);
                    QuartersModele quarter2 = getQuarter(championnat, 2);

                    row = oTable.NewRow();

                    //assigne le nom de l'équipe
                    row["Equipe :"] = equipe.nom;

                    //assigne les points du Q1
                    row["Points Q1 :"] = getPoints(equipe, matchs, quarter1);

                    //assigne les points du Q2
                    row["Points Q2 :"] = getPoints(equipe, matchs, quarter2);

                    //calcule le total de points
                    row["Points Totaux"] = (int)row["Points Q1 :"] + (int)row["Points Q2 :"];

                    //assigne les goals du Q1
                    row["Goals Q1 :"] = getGoals(equipe, matchs, quarter1);

                    //assigne les goals du Q2
                    row["Goals Q2 :"] = getGoals(equipe, matchs, quarter2);

                    //calcule le total de goals
                    row["Goals Totaux"] = (int)row["Goals Q1 :"] + (int)row["Goals Q2 :"];

                    row["Cartes Jaunes Q1 :"] = getCartesJaunes(equipe, matchs, quarter1);

                    row["Cartes Jaunes Q2 :"] = getCartesJaunes(equipe, matchs, quarter2);

                    row["Cartes Jaunes Totales"] = (int)row["Cartes Jaunes Q1 :"] + (int)row["Cartes Jaunes Q2 :"];

                    row["Cartes Rouges Q1 :"] = getCartesRouges(equipe, matchs, quarter1);

                    row["Cartes Rouges Q2 :"] = getCartesRouges(equipe, matchs, quarter2);

                    row["Cartes Rouges Totales"] = (int)row["Cartes Rouges Q1 :"] + (int)row["Cartes Rouges Q2 :"];

                    row["CartonsValeur"] = (int)row["Cartes Jaunes Totales"] + (3 * (int)row["Cartes Rouges Totales"]);

                    oTable.Rows.Add(row);
                }
                oTable.AcceptChanges();
                return(oTable);
            }
            catch (TechnicalError oErreur)
            {
                throw oErreur;
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #8
0
        // récupère le nombre de cartons rouges pour une équipe à un quarter
        public int getCartesRouges(EquipesModele equipe, List <MatchsModele> lMatchs, QuartersModele quarter)
        {
            List <CartonsRougesModele> lcr = new CartesRougesService().ListAll();
            int count = 0;

            foreach (CartonsRougesModele cr in lcr)
            {
                if (cr.equipeId == equipe.equipeId)
                {
                    foreach (MatchsModele match in lMatchs)
                    {
                        if (match.matchId == cr.matchId && match.matchDate <= quarter.dateFin && match.matchDate >= quarter.dateDebut)
                        {
                            count++;
                        }
                    }
                }
            }
            return(count);
        }