Пример #1
0
        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);
        }
Пример #2
0
        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 + ", ";
                        }
                    }
                }
            }
        }
Пример #3
0
 /// <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;
 }
Пример #5
0
        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());
            }
        }