Example #1
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());
            }
        }
Example #2
0
 public ViewRankingElimination(KnockoutRound round, double sizeMultiplier)
 {
     _round          = round;
     _sizeMultiplier = sizeMultiplier;
 }