コード例 #1
0
        public Boolean checkNoMatchswithFeuilleAfter(DateTime dateTransfert, EquipesModele equipeNew, EquipesModele equipeOld)
        {
            try
            {
                FeuillesDeMatchService       fms           = new FeuillesDeMatchService();
                List <FeuillesDeMatchModele> lFeuilleMatch = fms.ListAll();

                if (equipeNew != null)
                {
                    if (lFeuilleMatch.Any(x => x.Matchs.matchDate > dateTransfert &&
                                          (x.Matchs.equipe1Id == equipeNew.equipeId ||
                                           x.Matchs.equipe2Id == equipeNew.equipeId)))

                    {
                        return(false);
                    }
                }

                if (equipeOld != null)
                {
                    if (lFeuilleMatch.Any(x => x.Matchs.matchDate > dateTransfert &&
                                          (x.Matchs.equipe1Id == equipeOld.equipeId ||
                                           x.Matchs.equipe2Id == equipeOld.equipeId)))
                    {
                        return(false);
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #2
0
        //vérifie si l'équipe envoyée est bien dans les 3 derniers du championnat à la date envoyée
        public Boolean isLastThree(EquipesModele equipe, DateTime date)
        {
            try
            {
                int NBEQUIPE = 3;
                EquipesParticipationService eps = new EquipesParticipationService();

                DataView oView = new GenerationTabClassementEquipe().getClassementEquipe(date).DefaultView;
                //trie le tableau de manière ascendante
                oView.Sort = "Points Totaux asc";


                //vérifie que l'équipe d'arrivée est bien dans le championnat
                if (eps.isParticipation(equipe, date))
                {
                    if (oView.Count > NBEQUIPE)
                    {
                        for (int i = 0; i < NBEQUIPE; i++)
                        {
                            //vérifie si l'équipe est dans les 3 dernières row du tableau
                            if (oView[i]["Equipe :"].ToString() == equipe.nom)
                            {
                                return(true);
                            }
                        }
                        // retourne un BusinessError si l'équipe n'est pas dans les NBEQUIPE derniers
                        BusinessError bErreur = new BusinessError("L'équipe d'arrivée (" + equipe.nom + ") n'est pas classée dans les " + NBEQUIPE + " dernières équipes du classement");
                        throw bErreur;
                    }
                    else
                    {
                        return(true);
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null && ex.InnerException is SqlException)
                {
                    TechnicalError oErreur = new TechnicalError((SqlException)ex.InnerException);
                    throw oErreur;
                }
                else
                {
                    throw ex;
                }
            }
        }
コード例 #3
0
        // récupère le nombre de points pour une équipe à un quarter
        public int getPoints(EquipesModele equipe, List <MatchsModele> lMatchs, QuartersModele quarter)
        {
            int count = 0;

            foreach (MatchsModele match in lMatchs)
            {
                if (match.equipe1Id == equipe.equipeId && match.matchDate <= quarter.dateFin && match.matchDate >= quarter.dateDebut)
                {
                    count += match.equipe1Points;
                }

                if (match.equipe2Id == equipe.equipeId && match.matchDate <= quarter.dateFin && match.matchDate >= quarter.dateDebut)
                {
                    count += match.equipe2Points;
                }
            }
            return(count);
        }
コード例 #4
0
        // récupère le nombre de goals pour une équipe à un quarter
        public int getGoals(EquipesModele equipe, List <MatchsModele> lMatchs, QuartersModele quarter)
        {
            List <GoalsModele> lGoals = new GoalsService().ListAll();
            int count = 0;

            foreach (GoalsModele goal in lGoals)
            {
                if (goal.equipeId == equipe.equipeId)
                {
                    foreach (MatchsModele match in lMatchs)
                    {
                        if (match.matchId == goal.matchId && match.matchDate <= quarter.dateFin && match.matchDate >= quarter.dateDebut)
                        {
                            count++;
                        }
                    }
                }
            }
            return(count);
        }
コード例 #5
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);
        }
コード例 #6
0
        public Boolean checkMatchsAllPlayedBefore(DateTime dateTransfert, EquipesModele equipeNew, EquipesModele equipeOld)
        {
            try
            {
                MatchsService       ms               = new MatchsService();
                List <MatchsModele> lMatchs          = ms.ListAll();
                DateTime            debutChampionnat = new DateTime(dateTransfert.Year, 1, 1);

                if (equipeNew != null)
                {
                    if (lMatchs.Any(x => x.isPlayed == false &&
                                    (x.equipe1Id == equipeNew.equipeId ||
                                     x.equipe2Id == equipeNew.equipeId) &&
                                    x.matchDate < dateTransfert &&
                                    x.matchDate >= debutChampionnat))
                    {
                        return(false);
                    }
                }

                if (equipeOld != null)
                {
                    if (lMatchs.Any(x => x.isPlayed == false &&
                                    (x.equipe1Id == equipeOld.equipeId ||
                                     x.equipe2Id == equipeOld.equipeId) &&
                                    x.matchDate < dateTransfert &&
                                    x.matchDate >= debutChampionnat))
                    {
                        return(false);
                    }
                }
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #7
0
        public Boolean checkTransferts(DataTable oTable)
        {
            try
            {
                //transforme la table en vue et applique un filtre pour n'avoir que les lignes modifiées
                DataView oView = oTable.DefaultView;
                oView.RowStateFilter = DataViewRowState.ModifiedCurrent;

                if (checkTableTransfert(oView))
                {
                    foreach (DataRowView row in oView)
                    {
                        //obtient le joueur
                        JoueursService            js     = new JoueursService();
                        FifaModeles.JoueursModele joueur = js.GetJoueurs(row["Joueur :"].ToString());


                        EquipesService es = new EquipesService();

                        //obtient l'équipe et le nombre de joueur avant transfert et le nombre de transfert pour l'équipeNew si elle existe
                        int           nbTransfertsIn = 0;
                        int           nbJoueurNew    = NOMBREMINJOUEUR;
                        EquipesModele equipeNew      = new EquipesModele();
                        EquipesModele equipeOld      = new EquipesModele();

                        if (row["combo"].ToString() != "")
                        {
                            //obtient l'équipe et le nombre de joueur avant transfert et le nombre de transfert pour l'équipeNew
                            equipeNew = es.getEquipe(row["combo"].ToString());
                            //obtient le nombre de transfert
                            nbTransfertsIn = nombreTransfertEquipeNew(oView, equipeNew.nom);
                            //obtient le nombre de joueur avant transfert
                            nbJoueurNew = nombreJoueurEquipe(equipeNew.equipeId, (DateTime)row["Date du transfert :"]);
                        }

                        //obtient l'équipe et le nombre de joueur avant transfert et le nombre de transfert pour l'équipeOld si elle existe
                        int nbTransfertsOut = 0;
                        int nbJoueur        = NOMBREMINJOUEUR;
                        if (row["Equipe :"].ToString() != "")
                        {
                            equipeOld = es.getEquipe(row["Equipe :"].ToString());

                            //obtient le nombre de transfert
                            nbTransfertsOut = nombreTransfertEquipeOld(oView, equipeOld.nom);
                            //obtient le nombre de joueur avant transfert
                            nbJoueur = nombreJoueurEquipe(equipeOld.equipeId, (DateTime)row["Date du transfert :"]);
                        }


                        IntersaisonsService inter = new IntersaisonsService();

                        //vérifie si tous les matchs antérieurs sont jouées
                        if (checkMatchsAllPlayedBefore((DateTime)row["Date du transfert :"], equipeNew, equipeOld))
                        {
                            if (checkNoMatchswithFeuilleAfter((DateTime)row["Date du transfert :"], equipeNew, equipeOld))
                            {
                                if ((nbJoueurNew + nbTransfertsIn) <= NOMBREMAXJOUEUR)
                                {
                                    //vérifie si l'équipe d'arrivée est bien les x derniers du championnat à la date xx
                                    //si l'équipe d'arrivée n'est pas inscrite dans le championnat renvoie également true
                                    //sinon renvoie une Business erreur

                                    if (!inter.checkPasDansIntersaison((DateTime)row["Date du transfert :"]))
                                    {
                                        if ((nbJoueur - nbTransfertsOut) >= NOMBREMINJOUEUR)
                                        {
                                            if (equipeNew != null)
                                            {
                                                ClassementEquipe classement = new ClassementEquipe();
                                                if (classement.isLastThree(equipeNew, (DateTime)row["Date du transfert :"]))
                                                {
                                                }
                                            }
                                        }
                                        else
                                        {
                                            // retourne un BusinessError si il n'y aurait plus assez de joueurs
                                            BusinessError bErreur = new BusinessError("Il y a trop de transferts de sortie pour l'équipe de départ");
                                            throw bErreur;
                                        }
                                    }
                                }
                                else
                                {
                                    // retourne un BusinessError si il y aurait trop de joueurs
                                    BusinessError bErreur = new BusinessError("Il y a trop de transferts d'entrée pour l'équipe d'arrivée");
                                    throw bErreur;
                                }
                            }
                            else
                            {
                                // retourne un BusinessError si il y a des matchs joués postérieurs
                                BusinessError bErreur = new BusinessError("Une des équipes a déjà rempli une feuille de match après la date de transfert");
                                throw bErreur;
                            }
                        }
                        else
                        {
                            // retourne un BusinessError si il y a des matchs antérieurs non joués
                            BusinessError bErreur = new BusinessError("Tous les matchs antérieurs (de la saison) des équipes sélectionnées doivent être joués");
                            throw bErreur;
                        }
                    }
                }
                else
                {
                    // retourne un BusinessError si il n'y aurait plus assez de joueurs
                    BusinessError bErreur = new BusinessError("Toutes les cellules de date de transfert ne sont pas remplies");
                    throw bErreur;
                }

                return(true);
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null && ex.InnerException is SqlException)
                {
                    TechnicalError oErreur = new TechnicalError((SqlException)ex.InnerException);
                    throw oErreur;
                }
                else
                {
                    throw ex;
                }
            }
        }