// 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;
            }
        }
        public List <MatchsModele> GetMatchsQuarterTries(int annee, List <string> lNomEquipe, int numeroQuarter, List <MatchsModele> lMatchsSaison)
        {
            try
            {
                //crée les listes des matchs pour chaque quarter
                List <MatchsModele> lMatchQNonTrie = getListeMatchQuarter(lMatchsSaison, numeroQuarter);

                //obtient les listes des weeks ends pour un quarter numéroté
                List <DateTime> lWeekEndQ = getListeDateWeekEnds(annee, numeroQuarter);

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

                int k = 0;
                while (k < lMatchQNonTrie.Count)
                {
                    Boolean isNotSettled = true;
                    int     i            = 0;
                    while (i < lWeekEndQ.Count && isNotSettled)
                    {
                        //teste si une équipe joue déjà le même jour
                        if (!lMatchQTries.Any(xx => xx.matchDate == lWeekEndQ[i] && (xx.equipe1Id == lMatchQNonTrie[k].equipe1Id || xx.equipe2Id == lMatchQNonTrie[k].equipe2Id ||
                                                                                     xx.equipe1Id == lMatchQNonTrie[k].equipe2Id || xx.equipe2Id == lMatchQNonTrie[k].equipe1Id)))
                        {
                            //teste si une équipe joue déjà la veille
                            if (!lMatchQTries.Any(xx => xx.matchDate == lWeekEndQ[i].AddDays(-1) && (xx.equipe1Id == lMatchQNonTrie[k].equipe1Id || xx.equipe2Id == lMatchQNonTrie[k].equipe2Id ||
                                                                                                     xx.equipe1Id == lMatchQNonTrie[k].equipe2Id || xx.equipe2Id == lMatchQNonTrie[k].equipe1Id)))
                            {
                                isNotSettled = false;
                            }
                        }
                        i++;
                    }

                    //vérifie que tous les matchs soient bien dans la liste définitive
                    MatchsModele match = new MatchsModele();
                    match = lMatchQNonTrie[k];

                    //si n'a pas de date qui convienne
                    if (isNotSettled)
                    {
                        match.matchDate = new DateTime((numeroQuarter + 1800), 1, 1);
                    }
                    //si a une date qui convienne
                    else
                    {
                        match.matchDate = lWeekEndQ[i - 1];
                    }
                    lMatchQTries.Add(match);
                    k++;
                }

                return(lMatchQTries);
            }
            catch (TechnicalError oErreur)
            {
                throw oErreur;
            }

            catch (Exception ex)
            {
                throw ex;
            }
        }