private static List <ChampionshipRound> GetChampionshipRounds(IEnumerable <FishingMatch> matches, string anglerName) { var rounds = new List <ChampionshipRound>(); var championshipRoundIndex = 1; foreach (FishingMatch match in matches) { MatchEntry anglerMatchEntry = match.MatchEntries.SingleOrDefault(matchEntry => matchEntry.AnglerName == anglerName); var championshipRound = new ChampionshipRound { Number = championshipRoundIndex, Weight = 0, Points = 0, MatchFished = false }; if (anglerMatchEntry != null) { championshipRound.Weight = anglerMatchEntry.Weight; championshipRound.Points = anglerMatchEntry.Points; championshipRound.MatchFished = true; } rounds.Add(championshipRound); championshipRoundIndex += 1; } return(rounds); }
private void BandeauActualites() { tbActu.Text = ""; if (_partie.club != null && _partie.club.Championship != null) { //Choix de la compétition à afficher dans le bandeau : compétition du dernier match joué par l'équipe List <Match> matchs = _partie.club.Games; bool trouve = false; Tournament comp = null; int i = 0; if (matchs.Count == 0) { trouve = true; } while (!trouve) { if (!matchs[i].Played) { comp = matchs[i].Tournament; trouve = true; } i++; if (i + 1 == matchs.Count) { trouve = true; } } if (comp != null) { Round t = null; if (comp.isChampionship) { t = comp.rounds[0]; tbActu.Text = comp.name + " : "; i = 1; ChampionshipRound tc = t as ChampionshipRound; if (tc != null) { foreach (Club c in tc.Ranking()) { tbActu.Text += i + " " + c.shortName + " " + t.Points(c) + ", " + t.Difference(c) + " / "; i++; } } } else { t = comp.rounds[comp.currentRound]; tbActu.Text += comp.name + ", " + t.name + " : "; foreach (Match m in t.matches) { tbActu.Text += m.home.shortName + " " + m.score1 + "-" + m.score2 + " " + m.away.shortName + ", "; } } } } }
/// <summary> /// /// </summary> /// <param name="round"></param> /// <param name="sizeMultiplier">Width and font size multiplier</param> /// <param name="focusOnTeam">If true, only show 5 rows, focus the ranking around the team</param> /// <param name="team">The team to focus ranking on</param> public ViewRankingChampionship(ChampionshipRound round, double sizeMultiplier, bool focusOnTeam = false, Club team = null, bool reduced = false, RankingType rankingType = RankingType.General) { _round = round; _sizeMultiplier = sizeMultiplier; _focusOnTeam = focusOnTeam; _team = team; _reduced = reduced; _rankingType = rankingType; }
public MatchRankingComparator(ChampionshipRound round) { _round = round; }
public static void Exporter(Tournament c) { ExporterClubs(); StringBuilder dir = new StringBuilder(); dir.Append("Output\\").Append(c.name).Append(" ").Append(Session.Instance.Game.date.Year); StringBuilder dir2 = new StringBuilder(); dir2.Append("Output\\").Append(c.shortName).Append(" ").Append(Session.Instance.Game.date.Year); if (!Directory.Exists(dir.ToString())) { Directory.CreateDirectory(dir.ToString()); } if (!Directory.Exists(dir2.ToString())) { Directory.CreateDirectory(dir2.ToString()); } foreach (Round t in c.rounds) { if (!Directory.Exists(dir + "\\" + t.name)) { Directory.CreateDirectory(dir + "\\" + t.name); } if (!Directory.Exists(dir2 + "\\" + t.name)) { Directory.CreateDirectory(dir2 + "\\" + t.name); } StringBuilder output = new StringBuilder(); output.Append("<p>").Append(t.name).Append("</p><p>"); foreach (Club cl in t.clubs) { CityClub cv = cl as CityClub; if (cv != null) { output.Append("").Append(cl.name).Append(" - ").Append(cl.formationFacilities).Append(" - ") .Append(cv.budget).Append(" €<br>"); } } output.Append("</p>"); if (t as ChampionshipRound != null) { ChampionshipRound tc = t as ChampionshipRound; output.Append("<table>"); foreach (Club club in tc.Ranking()) { output.Append("<tr><td>").Append(club.name).Append("</td><td>").Append(tc.Points(club)) .Append("</td><td>").Append(tc.Played(club)).Append("</td><td>").Append(tc.Wins(club)) .Append("</td><td>").Append(tc.Draws(club)).Append("</td><td>").Append(tc.Loses(club)) .Append("</td><td>").Append(tc.GoalsFor(club)).Append("</td><td>") .Append(tc.GoalsAgainst(club)).Append("</td><td>").Append(tc.Difference(club)) .Append("</td></tr>"); } output.Append("</table>"); int matchsJournee = (tc.clubs.Count % 2 == 1) ? tc.clubs.Count / 2 + 1 : tc.clubs.Count / 2; int nbJournees = (tc.matches.Count / tc.clubs.Count) * 2; int k = 0; Exporteurs2.ExporterClassementL(tc, "Output\\" + c.shortName + Session.Instance.Game.date.Year + "\\" + t.name + "\\Matchs\\"); for (int i = 0; i < nbJournees; i++) { List <Match> journee = new List <Match>(); for (int j = 0; j < matchsJournee; j++) { journee.Add(tc.matches[i * matchsJournee + j]); } journee.Sort(new MatchDateComparator()); Exporteurs2.ExporterL(journee, "Output\\" + c.shortName + Session.Instance.Game.date.Year + "\\" + t.name, i + 1); output.Append("<p>Journée ").Append((i + 1)).Append("</p><table>"); DateTime last = new DateTime(2000, 1, 1); foreach (Match m in journee) { if (m.day.Date != last.Date) { output.Append("<tr><td colspan=\"3\">").Append(m.day.Date.ToShortDateString()) .Append("</td></tr>"); } last = m.day; output.Append("<tr><td>").Append(m.day.ToShortTimeString()).Append("</td><td>") .Append(m.home.name).Append("</td><td><a href=\"").Append(tc.name).Append("\\") .Append(k).Append(".html\">").Append(m.score1).Append("-").Append(m.score2) .Append("</a></td><td>").Append(m.away.name).Append("</td></tr>"); EcrireMatch(m, dir + "\\" + tc.name + "\\" + k + ".html"); k++; } output.Append("</table>"); } } if (t as KnockoutRound != null) { KnockoutRound te = t as KnockoutRound; output.Append("<table>"); int k = 0; List <Match> matchs = new List <Match>(te.matches); matchs.Sort(new MatchDateComparator()); DateTime last = new DateTime(2000, 1, 1); Exporteurs2.ExporterD(matchs, dir + "\\" + te.name + "\\"); foreach (Match m in matchs) { if (m.day.Date != last.Date) { output.Append("<tr><td colspan=\"3\">").Append(m.day.Date.ToShortDateString()) .Append("</td></tr>"); } last = m.day; Tournament compDom = m.home.Championship; Tournament compExt = m.away.Championship; string sCompDom = ""; string sCompExt = ""; if (compDom != null) { sCompDom = " (" + compDom.shortName + ")"; } if (compExt != null) { sCompExt = " (" + compExt.shortName + ")"; } string score = m.score1 + " - " + m.score2; if (m.prolongations) { score += " ap"; } if (m.PenaltyShootout) { score += " (" + m.penaltyShootout1 + "-" + m.penaltyShootout2 + " tab)"; } output.Append("<tr><td>").Append(m.day.ToShortTimeString()).Append("</td><td>") .Append(m.home.name).Append(sCompDom).Append("</td><td><a href=\"").Append(te.name) .Append("\\").Append(k).Append(".html\">").Append(score).Append("</a></td><td>") .Append(m.away.name).Append(sCompExt).Append("</td></tr>"); EcrireMatch(m, dir + "\\" + te.name + "\\" + k + ".html"); k++; } } if (t as InactiveRound != null) { InactiveRound ti = t as InactiveRound; output.Append("<p><b>Clubs participants</b></p>"); List <Club> clubs = new List <Club>(ti.clubs); foreach (Club club in clubs) { output.Append("<p>").Append(club.name).Append("</p>"); } } if (t as GroupsRound != null) { GroupsRound tp = t as GroupsRound; int nbEquipesParPoules = 0; foreach (List <Club> poules in tp.groups) { if (nbEquipesParPoules < poules.Count) { nbEquipesParPoules = poules.Count; } List <Club> classement = new List <Club>(poules); classement.Sort(new ClubRankingComparator(t.matches)); output.Append("<p>Groupe</p><table>"); foreach (Club club in classement) { output.Append("<tr><td>").Append(club.name).Append("</td><td>").Append(t.Points(club)) .Append("</td><td>").Append(t.Played(club)).Append("</td><td>").Append(t.Wins(club)) .Append("</td><td>").Append(t.Draws(club)).Append("</td><td>").Append(t.Loses(club)) .Append("</td><td>").Append(t.GoalsFor(club)).Append("</td><td>") .Append(t.GoalsAgainst(club)).Append("</td><td>").Append(t.Difference(club)) .Append("</td></tr>"); } output.Append("</table>"); } int nbJournees = nbEquipesParPoules - 1; if (t.twoLegs) { nbJournees *= 2; } int matchsJournee = t.matches.Count / nbJournees; int k = 0; for (int i = 0; i < nbJournees; i++) { List <Match> journee = new List <Match>(); for (int j = 0; j < matchsJournee; j++) { journee.Add(t.matches[i * matchsJournee + j]); } journee.Sort(new MatchDateComparator()); output.Append("<p>Journée ").Append((int)(i + 1)).Append("</p><table>"); foreach (Match m in journee) { output.Append("<tr><td>").Append(m.day.ToString()).Append("</td><td>").Append(m.home.name) .Append("</td><td><a href=\"").Append(t.name).Append("\\").Append(k).Append(".html\">") .Append(m.score1).Append("-").Append(m.score2).Append("</a></td><td>") .Append(m.away.name).Append("</td></tr>"); EcrireMatch(m, dir + "\\" + t.name + "\\" + k + ".html"); k++; } output.Append("</table>"); } } output.Append("<p>Moyenne de buts : ").Append(t.GoalsAverage()).Append("</p><p>Buteurs</p><table>"); foreach (KeyValuePair <Player, int> j in t.GoalScorers()) { output.Append("<tr><td>").Append(j.Key.firstName).Append(" ").Append(j.Key.lastName) .Append("</td><td>").Append(j.Value).Append("</td></tr>"); } output.Append("</table>"); File.WriteAllText(dir + "\\" + t.name + ".html", output.ToString()); } }