// 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; } }