예제 #1
0
 public ResultadoController(CorridasService corridasService, PilotosService pilotosService, EquipesService equipesService, ResultadosService resultadosService)
 {
     this.CorridasService   = corridasService;
     this.PilotosService    = pilotosService;
     this.EquipesService    = equipesService;
     this.ResultadosService = resultadosService;
 }
예제 #2
0
 public ContratoController(ParametrosSettings settings, ContratosService contratosService, PilotosService pilotosService, EquipesService equipesService)
 {
     _settings         = settings;
     _contratosService = contratosService;
     _pilotosService   = pilotosService;
     _equipesService   = equipesService;
 }
        public string getNomEquipes(Guid equipeId)
        {
            try
            {
                EquipesService       es      = new EquipesService();
                List <EquipesModele> lEquipe = es.ListAll();
                int i = 0;

                while (lEquipe[i].equipeId != equipeId && i < lEquipe.Count)
                {
                    i++;
                }

                return(lEquipe[i].nom);
            }
            catch (TechnicalError oErreur)
            {
                throw oErreur;
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }
        // crée la liste complète des matchs de la saison (A-B;A-C;B-A;B-C;C-A;C-B)
        public List <MatchsModele> getListeMatchSaison(List <string> lNomEquipe)
        {
            try
            {
                List <EquipesModele> lEquipe = new List <EquipesModele>();

                EquipesService es = new EquipesService();
                lEquipe = es.ListeEquipeParticipants(lNomEquipe);

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

                foreach (EquipesModele oEquipe in lEquipe)
                {
                    for (int i = 0; i < lEquipe.Count; i++)
                    {
                        if (!oEquipe.nom.Equals(lEquipe[i].nom))
                        {
                            MatchsModele match = new MatchsModele(oEquipe.equipeId, lEquipe[i].equipeId);
                            lMatchs.Add(match);
                        }
                    }
                }
                return(lMatchs);
            }
            catch (TechnicalError oErreur)
            {
                throw oErreur;
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #5
0
        public void enregistrerTransferts(DataTable oTable)
        {
            try
            {
                if (checkTransferts(oTable))
                {
                    using (FifaManagerEphecEntities ctx = new FifaManagerEphecEntities(_Connection))
                    {
                        //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;


                        foreach (DataRowView row in oView)
                        {
                            //récupère l'id du joueur
                            Guid     joueurId      = new JoueursService().GetJoueurs(row["Joueur :"].ToString()).joueurId;
                            DateTime dateTransfert = (DateTime)row["Date du transfert :"];

                            //mets fin au précedent transfert si il existe et rajoute un jour à la date du transfert
                            if (row["Date arrivee :"].ToString() != "" && row["Equipe :"].ToString() != "")
                            {
                                ctx.Transferts_UpdateDateFin(joueurId, (DateTime)row["Date arrivee :"], dateTransfert, DateTime.Now);

                                dateTransfert = dateTransfert.AddDays(1);
                            }

                            //crée un nouveau transfert
                            if (row["combo"].ToString() != "")
                            {
                                Guid equipeInId = new EquipesService().getEquipe(row["combo"].ToString()).equipeId;
                                ctx.Tansferts_Add(joueurId, equipeInId, dateTransfert, DateTime.Now);
                            }
                        }
                        using (TransactionScope scope = new TransactionScope())
                        {
                            ctx.SaveChanges();
                            scope.Complete();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null && ex.InnerException is SqlException)
                {
                    TechnicalError oErreur = new TechnicalError((SqlException)ex.InnerException);
                    throw oErreur;
                }
                else
                {
                    throw ex;
                }
            }
        }
예제 #6
0
 //récupère la liste des équipes inscrites et les rajoute dans EquipePartcipation
 private void enregistrerEquipes(List <string> lEquipe, Guid championnatId)
 {
     try
     {
         //transforme la liste de string en liste d'équipes puis les inscrits
         EquipesService es = new EquipesService();
         EquipesParticipationService eps = new EquipesParticipationService();
         eps.enregistrerEquipesParticipation(es.ListeEquipeParticipants(lEquipe), championnatId);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
예제 #7
0
        public static DataTable getEquipes(DateTime debutChamp)
        {
            try
            {
                EquipesService       es       = new EquipesService();
                List <EquipesModele> lEquipes = es.ListAll();

                TransfertsService       ts          = new TransfertsService();
                List <TransfertsModele> lTransferts = ts.ListAll();

                DataTable equipesSelection = new TableEquipesSelectionnees().getTable();
                DataRow   row;

                foreach (EquipesModele em in lEquipes)
                {
                    int count = 0;

                    foreach (TransfertsModele tm in lTransferts)
                    {
                        if (em.equipeId == tm.equipeId && tm.dateDebut.Year < debutChamp.Year && (tm.dateFin == null || tm.dateFin > debutChamp))
                        {
                            count++;
                        }
                    }

                    if (count <= MAXJOUEUR && count >= MINJOUEUR)
                    {
                        row = equipesSelection.NewRow();

                        row[0] = em.nom;

                        row[1] = false;

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

            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #8
0
        public List <FifaModeles.EquipesModele> getEquipesDatees(FifaModeles.JoueursModele joueur, FifaModeles.ChampionnatsModele championnat)
        {
            List <FifaModeles.EquipesModele> lEquipe    = new List <FifaModeles.EquipesModele>();
            List <FifaModeles.EquipesModele> lEquipeAll = new EquipesService().ListAll();

            foreach (FifaModeles.TransfertsModele transfert in this.ListAll())
            {
                if (transfert.joueurId == joueur.joueurId && transfert.dateDebut.Year <= championnat.annee && (!transfert.dateFin.HasValue || transfert.dateFin.Value.Year >= championnat.annee))
                {
                    int i = 0;
                    while (i < lEquipeAll.Count && lEquipeAll[i].equipeId != transfert.equipeId)
                    {
                        i++;
                    }
                    lEquipe.Add(lEquipeAll[i]);
                }
            }
            return(lEquipe);
        }
예제 #9
0
        private Boolean enregistrerNewDivison(List <string> lEquipe)
        {
            Boolean _return = false;

            try
            {
                // enregistre le nouveau championnat
                ChampionnatService cs = new ChampionnatService();
                Guid championnatId;

                EquipesParticipationService eps = new EquipesParticipationService();
                EquipesService es = new EquipesService();

                //vérifie qu'il n'y ait pas de transfert dans l'année pour une des équipes
                if (eps.checkPasTransfertAvantParticipation(es.ListeEquipeParticipants(lEquipe), Convert.ToInt32(tb_Annee.Text)))
                {
                    //vérifie si le championnat a pu être créé et si oui lance la création de quarters et d'intersaison
                    if (cs.enregistrerNewChampionnat(Convert.ToInt32(tb_Annee.Text), out championnatId))
                    {
                        //enregistre la nouvelle intersaison
                        IntersaisonsService interS = new IntersaisonsService();
                        interS.enregistrerNewIntersaison(dateDebutInt, dateFinInt, championnatId);

                        //enregistre les nouveaux quarters
                        QuartersService qs = new QuartersService();
                        qs.enregistrerNewQuarter(dateDebut, dateFinQ1, championnatId);
                        qs.enregistrerNewQuarter(dateDebutQ2, dateFinQ2, championnatId);

                        //enregistre les équipes
                        enregistrerEquipes(lEquipe, championnatId);

                        _return = true;
                    }
                }
                return(_return);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return(_return);
            }
        }
예제 #10
0
 public EquipeController(EquipesService equipesService)
 {
     _equipesService = equipesService;
 }
예제 #11
0
        public void enregistrerMatchs(DataView oView)
        {
            try
            {
                if (checkToutesDatesRemplies(oView, out string rowNumber))
                {
                    if (checkDatesMatch(oView, out string rowNumber2))
                    {
                        using (FifaManagerEphecEntities ctx = new FifaManagerEphecEntities(_Connection))
                        {
                            //récupère la liste des équipes
                            EquipesService equipes = new EquipesService();
                            List <FifaModeles.EquipesModele> lEquipes = equipes.ListAll();

                            foreach (DataRowView oRow in oView)
                            {
                                //trouve l'Id des 2 équipes
                                Guid equipe1Id = Guid.Empty;
                                Guid equipe2Id = Guid.Empty;
                                int  i         = 0;
                                while ((equipe1Id == Guid.Empty || equipe2Id == Guid.Empty) && i < lEquipes.Count)
                                {
                                    if (lEquipes[i].nom.Equals((String)oRow["Equipe à Domicile :"]))
                                    {
                                        equipe1Id = lEquipes[i].equipeId;
                                    }
                                    if (lEquipes[i].nom.Equals((String)oRow["Equipe à l'extérieur :"]))
                                    {
                                        equipe2Id = lEquipes[i].equipeId;
                                    }
                                    i++;
                                }

                                //assigne la date du match
                                DateTime matchDate = (DateTime)(oRow["Date du Match :"]);

                                //ajoute le match au DbSET
                                ctx.Matchs_Add(matchDate, equipe1Id, equipe2Id);
                            }

                            //enregistre le DbSet dans la database
                            using (TransactionScope scope = new TransactionScope())
                            {
                                ctx.SaveChanges();
                                scope.Complete();
                            }
                        }
                    }
                    else
                    {
                        BusinessError ex = new BusinessError("Une équipe ne peut pas jouer 2 fois le même jour", rowNumber2);
                        throw ex;
                    }
                }
                else
                {
                    BusinessError ex = new BusinessError("Toutes les dates de match doivent être dans un quarter", rowNumber);
                    throw ex;
                }
            }
            catch (Exception ex)
            {
                if (ex.InnerException != null && ex.InnerException is SqlException)
                {
                    TechnicalError oErreur = new TechnicalError((SqlException)ex.InnerException);
                    throw oErreur;
                }
                else
                {
                    throw ex;
                }
            }
        }
        public DataTable genererTableauTransferts()
        {
            try
            {
                DataTable oTable = new TableTransfertJoueurs().getTable();
                DataRow   row;

                //récupère la liste des participations de joueurs en cours dans des équipes
                TransfertsService       Joueurstransferts = new TransfertsService();
                List <TransfertsModele> lTransferts       = Joueurstransferts.ListAllWithEquipeJoueurs();

                //récupère la liste des joueurs
                JoueursService       js       = new JoueursService();
                List <JoueursModele> lJoueurs = js.ListAll();

                //récupère la liste des équipes
                EquipesService       es       = new EquipesService();
                List <EquipesModele> lEquipes = es.ListAll();



                //rajoute les joueurs qui ont déjà été transférés
                foreach (TransfertsModele transferts in lTransferts)
                {
                    row = oTable.NewRow();

                    // récupère le nom du joueur
                    string prenom = lJoueurs.Where(xx => xx.joueurId == transferts.joueurId).FirstOrDefault().prenom;
                    string nom    = lJoueurs.Where(xx => xx.joueurId == transferts.joueurId).FirstOrDefault().nom;
                    row["Joueur :"] = prenom + " " + nom;

                    row["Equipe :"] = lEquipes.Where(xx => xx.equipeId == transferts.equipeId).FirstOrDefault().nom;

                    row["Date arrivee :"] = (DateTime)transferts.dateDebut;

                    oTable.Rows.Add(row);
                }

                //rajoute les joueurs sans équipe
                foreach (JoueursModele joueurs in lJoueurs)
                {
                    row = oTable.NewRow();

                    //vérifie si le joueur n'est pas déjà dans la table de joueursParticipation
                    if (lTransferts.FirstOrDefault(xx => xx.joueurId == joueurs.joueurId) == null)
                    {
                        row["Joueur :"] = joueurs.prenom + " " + joueurs.nom;
                        oTable.Rows.Add(row);
                    }
                }

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

            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #13
0
        private void getListeEquipes()
        {
            EquipesService es = new EquipesService();

            lEquipe = es.ListAll();
        }
예제 #14
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;
            }
        }
예제 #15
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;
                }
            }
        }