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