示例#1
0
        private void busca()
        {
            string textoBusca = txtBusca.Text.ToUpper();

            if (textoBusca.Length == 0)
            {
                partidasPorRodada_view = new List <List <Competicao_Partida> >(partidasPorRodada);
            }
            else
            {
                switch (cboCamposBusca.SelectedIndex)
                {
                case 0:     // Equipe
                    // Percorre todas as rodadas
                    for (int iCount = 0; iCount < partidasPorRodada.Count; iCount++)
                    {
                        partidasPorRodada_view[iCount] = partidasPorRodada[iCount].FindAll(find => find.equipe1.nome.ToUpper().Contains(textoBusca) || find.equipe2.nome.ToUpper().Contains(textoBusca));
                    }
                    break;
                }
            }

            for (int iCount = 0; iCount < partidasPorRodada.Count; iCount++)
            {
                int numRodada = Convert.ToInt32(dgvRodadas[iCount].Tag);
                if (numRodada >= 0)
                {
                    numRodada--;
                }

                CompeticaoViewUtilidades.refreshDataGridViewRodadas(dgvRodadas[iCount], partidasPorRodada_view[iCount], competicao, numRodada);
            }
        }
        public static void relatorioPartidas(Competicao competicao, List <Competicao_Partida> partidas, int rodada, string nomeRodada, bool fotoAtleta)
        {
            //Cabeçalho HTML
            StringBuilder cabecalhoHTML = new StringBuilder();

            cabecalhoHTML.AppendLine("<html>");
            cabecalhoHTML.AppendLine("    <head>");
            cabecalhoHTML.AppendLine("            <link rel=\"stylesheet\" href=\"https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css\" integrity=\"sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB\" crossorigin=\"anonymous\">");
            cabecalhoHTML.AppendLine("            <script src=\"https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js\" integrity=\"sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T\" crossorigin=\"anonymous\"></script>");
            cabecalhoHTML.AppendLine("        <meta charset=\"UTF-8\">");
            cabecalhoHTML.AppendFormat("        <title>{0} - Artilheiros</title>", competicao.nome).AppendLine();
            cabecalhoHTML.AppendLine("    </head>");
            cabecalhoHTML.AppendLine("    <style>");
            cabecalhoHTML.AppendLine("        th {	font-size: 18px;	}");
            cabecalhoHTML.AppendLine("        td {	font-size: 16px;	}");
            cabecalhoHTML.AppendLine("        div {	font-size: 18px;	}");
            cabecalhoHTML.AppendLine("    </style>");
            cabecalhoHTML.AppendLine("    <body>");

            //Cabeçalho Relatório
            StringBuilder cabecalhoRelatorio = new StringBuilder();

            cabecalhoRelatorio.AppendLine("		<div class=\"card\">");
            cabecalhoRelatorio.AppendFormat("            <div class=\"card-header bg-primary mb-3\"><strong>{0}</strong></div>", nomeRodada).AppendLine();
            cabecalhoRelatorio.AppendLine("            <div class=\"card-body\">");
            cabecalhoRelatorio.AppendLine("                <table class=\"table table-striped\">");
            cabecalhoRelatorio.AppendLine("                    <thead>");
            cabecalhoRelatorio.AppendLine("                        <tr>");

            string nomeGrupoJogo;

            if (rodada < 0)
            {
                nomeGrupoJogo = "Jogo";
            }
            else
            {
                nomeGrupoJogo = "Grupo";
            }
            cabecalhoRelatorio.AppendFormat("                            <th style=\"width: 10%\">{0}</th>", nomeGrupoJogo).AppendLine();

            cabecalhoRelatorio.AppendLine("                            <th style=\"width: 10%\">Data</th>");

            if (fotoAtleta)
            {
                cabecalhoRelatorio.AppendLine("                            <th style=\"width: 4.41%\"> </th>");
            }

            cabecalhoRelatorio.AppendLine("                            <th style=\"width: 17.85%\">Casa</th>");
            cabecalhoRelatorio.AppendLine("                            <th style=\"width: 6%\"> </th>");
            cabecalhoRelatorio.AppendLine("                            <th style=\"width: 2%\">X</th>");
            cabecalhoRelatorio.AppendLine("                            <th style=\"width: 6%\"> </th>");
            cabecalhoRelatorio.AppendLine("                            <th style=\"width: 17.85%\">Visitante</th>");

            if (fotoAtleta)
            {
                cabecalhoRelatorio.AppendLine("                            <th style=\"width: 4.41%\"> </th>");
            }

            cabecalhoRelatorio.AppendLine("                            <th style=\"width: 15.66%\">Árbitro</th>");
            cabecalhoRelatorio.AppendLine("                        </tr>");
            cabecalhoRelatorio.AppendLine("                    </thead>");
            cabecalhoRelatorio.AppendLine("                    <tbody>");

            //Partidas
            StringBuilder partidasRelatorio = new StringBuilder();

            for (int numPartida = 0; numPartida < partidas.Count; numPartida++)
            {
                Competicao_Partida partida = partidas[numPartida];

                int numGolsEquipe1, numGolsEquipe2;
                numGolsEquipe1 = partida.eventos.FindAll(find => find.tpEvento == tpEventoEnum.Gol && find.id_Equipe == partida.equipe1.id).Count;
                numGolsEquipe2 = partida.eventos.FindAll(find => find.tpEvento == tpEventoEnum.Gol && find.id_Equipe == partida.equipe2.id).Count;

                int numGolsPenaltiEquipe1, numGolsPenaltiEquipe2;
                numGolsPenaltiEquipe1 = partida.eventos.FindAll(find => find.tpEvento == tpEventoEnum.Gol_Penalti && find.id_Equipe == partida.equipe1.id).Count;
                numGolsPenaltiEquipe2 = partida.eventos.FindAll(find => find.tpEvento == tpEventoEnum.Gol_Penalti && find.id_Equipe == partida.equipe2.id).Count;

                bool vitoriaEquipe1, vitoriaEquipe2;
                if (numGolsPenaltiEquipe1 > 0 || numGolsPenaltiEquipe2 > 0)
                {
                    vitoriaEquipe1 = numGolsPenaltiEquipe1 > numGolsPenaltiEquipe2;
                    vitoriaEquipe2 = numGolsPenaltiEquipe2 > numGolsPenaltiEquipe1;
                }
                else
                {
                    vitoriaEquipe1 = numGolsEquipe1 > numGolsEquipe2;
                    vitoriaEquipe2 = numGolsEquipe2 > numGolsEquipe1;
                }

                partidasRelatorio.AppendLine("                        <tr>");

                if (rodada < 0)
                {
                    nomeGrupoJogo = "Jogo " + partida.numGrupo.ToString();
                }
                else
                {
                    nomeGrupoJogo = CompeticaoViewUtilidades.getNomeGrupo(competicao.nomesGrupos, partida.numGrupo + 1);
                }
                partidasRelatorio.AppendFormat("							<td>{0}</td>", nomeGrupoJogo).AppendLine();

                string dataJogo;
                if (partida.data is null)
                {
                    dataJogo = "";
                }
                else
                {
                    dataJogo = ((DateTime)partida.data).ToString("dd/MM/yyyy");
                }
                partidasRelatorio.AppendFormat("							<td>{0}</td>", dataJogo).AppendLine();

                if (fotoAtleta)
                {
                    partidasRelatorio.AppendFormat("							<td><div class=\"text-center\">	<img height=\"25\" src=\"file:///{0}\" class=\"rounded\"></div></td>  ", (partida.equipe1.urlLogo is null ? "" : partida.equipe1.urlLogo)).AppendLine();
                }

                string golsEquipe1 = numGolsEquipe1.ToString();
                if (numGolsPenaltiEquipe1 > 0 || numGolsPenaltiEquipe2 > 0)
                {
                    golsEquipe1 += " (" + numGolsPenaltiEquipe1.ToString() + ")";
                }
                partidasRelatorio.AppendFormat("							<td {0}>{1}</td>", (vitoriaEquipe1 ? "style=\"font-weight:bold\"" : ""), partida.equipe1.nome).AppendLine();
                partidasRelatorio.AppendFormat("							<td align=\"right\" {0}>{1}</td>", (vitoriaEquipe1 ? "style=\"font-weight:bold\"" : ""), (partida.encerrada ? golsEquipe1 : "")).AppendLine();
                partidasRelatorio.AppendLine("							<td style=\"font-weight:bold\">X</td>");

                string golsEquipe2 = "";
                if (numGolsPenaltiEquipe1 > 0 || numGolsPenaltiEquipe2 > 0)
                {
                    golsEquipe2 = "(" + numGolsPenaltiEquipe2.ToString() + ") ";
                }
                golsEquipe2 += numGolsEquipe2.ToString();
                partidasRelatorio.AppendFormat("							<td align=\"left\" {0}>{1}</td>", (vitoriaEquipe2 ? "style=\"font-weight:bold\"" : ""), (partida.encerrada ? golsEquipe2 : "")).AppendLine();

                partidasRelatorio.AppendFormat("							<td {0}>{1}</td>", (vitoriaEquipe2 ? "style=\"font-weight:bold\"" : ""), partida.equipe2.nome).AppendLine();

                if (fotoAtleta)
                {
                    partidasRelatorio.AppendFormat("							<td><div class=\"text-center\">	<img height=\"25\" src=\"file:///{0}\" class=\"rounded\"></div></td>  ", (partida.equipe2.urlLogo is null ? "" : partida.equipe2.urlLogo)).AppendLine();
                }

                partidasRelatorio.AppendFormat("							<td>{0}</td>", (partida.arbitro is null? "" : partida.arbitro.pessoa.nome)).AppendLine();
                partidasRelatorio.AppendLine("						</tr> ");
            }

            //Parte final relatório
            StringBuilder finalRelatorio = new StringBuilder();

            finalRelatorio.AppendLine("                    </tbody>");
            finalRelatorio.AppendLine("                </table>");
            finalRelatorio.AppendLine("            </div>");
            finalRelatorio.AppendLine("        </div>");

            //Final HTML
            StringBuilder finalHTML = new StringBuilder();

            finalHTML.AppendLine("    </body>");
            finalHTML.AppendLine("</html>");

            //HTML Inteiro
            StringBuilder fullHTML = new StringBuilder();

            fullHTML.Append(cabecalhoHTML.ToString());
            fullHTML.Append(cabecalhoRelatorio.ToString());
            fullHTML.Append(partidasRelatorio.ToString());
            fullHTML.Append(finalRelatorio.ToString());
            fullHTML.Append(finalHTML.ToString());

            // Escolhe onde vai salvar o arquivo
            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Filter   = "HTML Files|*.html";
            saveFileDialog.Title    = "Escolha um diretório para salvar o relatório de partidas";
            saveFileDialog.FileName = String.Format("{0} - {1} - Relatório de partidas", competicao.nome, nomeRodada);

            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                // Salva o arquivo
                StreamWriter salvar = new StreamWriter(saveFileDialog.FileName);
                salvar.WriteLine(fullHTML.ToString());
                salvar.Close();

                if (MessageBox.Show("Gostaria de abrir o relatório?",
                                    "Relatório de partidas",
                                    MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    System.Diagnostics.Process.Start(saveFileDialog.FileName);
                }
            }
        }
        public static void relatorioGrupos(Competicao competicao, bool fotoEquipe, List <List <EquipeCompeticao> > timesProximaFase)
        {
            StringBuilder cabecalhoHTML      = new StringBuilder();
            StringBuilder cabecalhoRelatorio = new StringBuilder();
            StringBuilder equipesRelatorio   = new StringBuilder();
            StringBuilder finalRelatorio     = new StringBuilder();
            StringBuilder finalHTML          = new StringBuilder();
            StringBuilder fullHTML           = new StringBuilder();

            //Cabeçalho HTML
            cabecalhoHTML = new StringBuilder();
            cabecalhoHTML.AppendLine("<html>");
            cabecalhoHTML.AppendLine("    <head>");
            cabecalhoHTML.AppendLine("        <link rel=\"stylesheet\" href=\"https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css\" integrity=\"sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB\" crossorigin=\"anonymous\">");
            cabecalhoHTML.AppendLine("        <script src=\"https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js\" integrity=\"sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T\" crossorigin=\"anonymous\"></script>");
            cabecalhoHTML.AppendLine("        <meta charset=\"UTF-8\">");
            cabecalhoHTML.AppendFormat("        <title>{0} - Classificação</title>", competicao.nome).AppendLine();
            cabecalhoHTML.AppendLine("    </head>");
            cabecalhoHTML.AppendLine("    <body>");

            fullHTML.Append(cabecalhoHTML.ToString());


            //Cabeçalho Relatório - Por Grupo
            for (int iGrupo = 0; iGrupo < competicao.grupos.Count; iGrupo++)
            {
                // Ordena as equipes
                competicao.grupos[iGrupo] = (from customDS in competicao.grupos[iGrupo]
                                             orderby customDS.pontos descending, customDS.vitorias descending, customDS.golsPro - customDS.golsContra descending
                                             select customDS).ToList <EquipeCompeticao>();

                cabecalhoRelatorio = new StringBuilder();
                cabecalhoRelatorio.AppendLine("		<div class=\"card\">");
                cabecalhoRelatorio.AppendFormat("            <div class=\"card-header bg-primary mb-3\"><strong>{0}</strong></div>", CompeticaoViewUtilidades.getNomeGrupo(competicao.nomesGrupos, iGrupo + 1)).AppendLine();
                cabecalhoRelatorio.AppendLine("            <div class=\"card-body\">");
                cabecalhoRelatorio.AppendLine("                <table class=\"table table-striped\">");
                cabecalhoRelatorio.AppendLine("                    <thead>");
                cabecalhoRelatorio.AppendLine("                        <tr>");
                cabecalhoRelatorio.AppendLine("                            <th style=\"width: 6%\">P.</th>");

                if (fotoEquipe)
                {
                    cabecalhoRelatorio.AppendLine("                            <th style=\"width: 10%\"> </th>");
                }

                cabecalhoRelatorio.AppendLine("                            <th style=\"width: 20%\">Equipe</th>");
                cabecalhoRelatorio.AppendLine("                            <th style=\"width: 9%\">Pts</th>");
                cabecalhoRelatorio.AppendLine("                            <th style=\"width: 6%\">J</th>");
                cabecalhoRelatorio.AppendLine("                            <th style=\"width: 6%\">V</th>");
                cabecalhoRelatorio.AppendLine("                            <th style=\"width: 6%\">E</th>");
                cabecalhoRelatorio.AppendLine("                            <th style=\"width: 6%\">D</th>");
                cabecalhoRelatorio.AppendLine("                            <th style=\"width: 6%\">GP</th>");
                cabecalhoRelatorio.AppendLine("                            <th style=\"width: 6%\">GC</th>");
                cabecalhoRelatorio.AppendLine("                            <th style=\"width: 6%\">SG</th>");
                cabecalhoRelatorio.AppendLine("                            <th style=\"width: 6%\">%</th>");
                cabecalhoRelatorio.AppendLine("                        </tr>");
                cabecalhoRelatorio.AppendLine("                    </thead>");
                cabecalhoRelatorio.AppendLine("                    <tbody>");

                fullHTML.Append(cabecalhoRelatorio.ToString());

                //Equipes
                for (int iEquipe = 0; iEquipe < competicao.grupos[iGrupo].Count; iEquipe++)
                {
                    EquipeCompeticao equipe = competicao.grupos[iGrupo][iEquipe];

                    //Verifica se a equipe até então está se classificando
                    bool classificada = false;
                    if (timesProximaFase[iGrupo].Contains(equipe))
                    {
                        classificada = true;
                    }

                    equipesRelatorio = new StringBuilder();
                    equipesRelatorio.AppendFormat("                        <tr {0}>", (classificada ? "style=\"font-weight:bold\"" : "")).AppendLine();
                    equipesRelatorio.AppendFormat("							<td>{0}º</td>", iEquipe + 1).AppendLine();

                    if (fotoEquipe)
                    {
                        equipesRelatorio.AppendFormat("							<td><div class=\"text-center\">	<img height=\"75\" src=\"file:///{0}\" class=\"rounded\"></div></td>  ", (equipe.urlLogo is null ? "" : equipe.urlLogo)).AppendLine();
                    }

                    equipesRelatorio.AppendFormat("							<td>{0}</td>", equipe.nome).AppendLine();
                    equipesRelatorio.AppendFormat("							<td>{0}</td>", equipe.pontos).AppendLine();
                    equipesRelatorio.AppendFormat("							<td>{0}</td>", equipe.vitorias + equipe.derrotas + equipe.empates).AppendLine();
                    equipesRelatorio.AppendFormat("							<td>{0}</td>", equipe.vitorias).AppendLine();
                    equipesRelatorio.AppendFormat("							<td>{0}</td>", equipe.empates).AppendLine();
                    equipesRelatorio.AppendFormat("							<td>{0}</td>", equipe.derrotas).AppendLine();
                    equipesRelatorio.AppendFormat("							<td>{0}</td>", equipe.golsPro).AppendLine();
                    equipesRelatorio.AppendFormat("							<td>{0}</td>", equipe.golsContra).AppendLine();
                    equipesRelatorio.AppendFormat("							<td>{0}</td>", equipe.golsPro - equipe.golsContra).AppendLine();
                    if (equipe.vitorias + equipe.derrotas + equipe.empates > 0)
                    {
                        equipesRelatorio.AppendFormat("							<td>{0}</td>", equipe.pontos * 100 / ((equipe.vitorias + equipe.derrotas + equipe.empates) * 3)).AppendLine();
                    }
                    else
                    {
                        equipesRelatorio.AppendFormat("							<td>{0}</td>", 0).AppendLine();
                    }
                    equipesRelatorio.AppendLine("						</tr> ");

                    fullHTML.Append(equipesRelatorio.ToString());
                }

                //Parte final relatório
                finalRelatorio = new StringBuilder();
                finalRelatorio.AppendLine("                    </tbody>");
                finalRelatorio.AppendLine("                </table>");
                finalRelatorio.AppendLine("            </div>");
                finalRelatorio.AppendLine("        </div>");

                fullHTML.Append(finalRelatorio.ToString());
            }

            //Final HTML
            finalHTML = new StringBuilder();
            finalHTML.AppendLine("    </body>");
            finalHTML.AppendLine("</html>");

            fullHTML.Append(finalHTML.ToString());

            // Escolhe onde vai salvar o arquivo
            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Filter   = "HTML Files|*.html";
            saveFileDialog.Title    = "Escolha um diretório para salvar o relatório de classificação";
            saveFileDialog.FileName = String.Format("{0} - Relatório de classificação", competicao.nome);

            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                // Salva o arquivo
                StreamWriter salvar = new StreamWriter(saveFileDialog.FileName);
                salvar.WriteLine(fullHTML.ToString());
                salvar.Close();

                if (MessageBox.Show("Gostaria de abrir o relatório?",
                                    "Relatório de classificação",
                                    MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    System.Diagnostics.Process.Start(saveFileDialog.FileName);
                }
            }
        }
示例#4
0
        private void load(object sender, EventArgs e)
        {
            lblCompeticao.Text = competicao.nome;

            competicao.partidas = CompeticaoRepositorio.Instance.getPartidasPorCompeticao(competicao.id);

            // Cria as abas das partidas
            tcPartidas.Controls.Clear();
            tcAbas.SelectedTab = tpPartidas;

            dgvRodadas        = new List <DataGridView>();
            partidasPorRodada = new List <List <Competicao_Partida> >();
            int numRodadas = CompeticaoRepositorio.Instance.getNumRodadas(competicao);

            for (int numRodada = 0; numRodada < numRodadas; numRodada++)
            {
                DataGridView dgvRodada = CompeticaoViewUtilidades.criaAba("Rodada " + (numRodada + 1).ToString(), numRodada, tcPartidas, dgvPartidas_CellMouseClick);
                dgvRodada.Tag                   = numRodada + 1;
                dgvRodada.ReadOnly              = false;
                dgvRodada.CellEndEdit          += dgvRodada_CellEndEdit;
                dgvRodada.CellMouseDoubleClick += dgvRodadas_CellMouseDoubleClick;

                dgvRodadas.Add(dgvRodada);

                List <Competicao_Partida> partidas = competicao.partidas.FindAll(partidasAEncontrar => partidasAEncontrar.rodada == numRodada + 1);
                CompeticaoViewUtilidades.refreshDataGridViewRodadas(dgvRodada, partidas, competicao, numRodada);

                partidasPorRodada.Add(partidas);
            }

            // Cria as abas das partidas da fase final
            int numAbasAdicionais = 0;

            switch (competicao.faseFinal)
            {
            case FaseFinalEnum._1_Nao:   numAbasAdicionais = 0;  break;

            case FaseFinalEnum._2_Final: numAbasAdicionais = 1; break;

            case FaseFinalEnum._3_SemiFinal: numAbasAdicionais = 2; break;

            case FaseFinalEnum._4_QuartasFinal: numAbasAdicionais = 3; break;

            case FaseFinalEnum._5_OitavasFinal: numAbasAdicionais = 4; break;
            }

            // Define o nome da aba e o número da rodada (fase final)
            for (int numAbaAdicional = 0; numAbaAdicional < numAbasAdicionais; numAbaAdicional++)
            {
                int    numRodada = 0;
                string nomeAba   = CompeticaoViewUtilidades.getNomeAba(numAbasAdicionais, numAbaAdicional, ref numRodada);

                DataGridView dgvRodada = CompeticaoViewUtilidades.criaAba(nomeAba, numRodada, tcPartidas, dgvPartidas_CellMouseClick);
                dgvRodada.Tag = numRodada;
                dgvRodada.CellMouseDoubleClick += dgvRodadas_CellMouseDoubleClick;
                dgvRodada.ReadOnly              = false;
                dgvRodada.CellEndEdit          += dgvRodada_CellEndEdit;
                dgvRodadas.Add(dgvRodada);

                List <Competicao_Partida> partidas = competicao.partidas.FindAll(partidasAEncontrar => partidasAEncontrar.rodada == numRodada);
                partidasPorRodada.Add(partidas);

                CompeticaoViewUtilidades.refreshDataGridViewRodadas(dgvRodada, partidas, competicao, numRodada);
            }

            partidasPorRodada_view = new List <List <Competicao_Partida> >(partidasPorRodada);

            if (competicao.status == StatusEnum._0_Encerrada)
            {
                btnProximaFase.Enabled = false;
            }
            else
            {
                btnProximaFase.Enabled = true;
            }

            // Cria a abas dos grupos e a classificação
            tcClassificacao.Controls.Clear();
            tcAbas.SelectedTab = tpClassificacao;

            // Seleciona os times até então classificados para a próxima fase
            int numProximaFase           = 0;
            int numPartidasASeremGeradas = 0;

            switch (competicao.faseFinal)
            {
            case FaseFinalEnum._5_OitavasFinal: numProximaFase = -4; numPartidasASeremGeradas = 8; break;

            case FaseFinalEnum._4_QuartasFinal: numProximaFase = -3; numPartidasASeremGeradas = 4; break;

            case FaseFinalEnum._3_SemiFinal: numProximaFase = -2; numPartidasASeremGeradas = 2; break;

            case FaseFinalEnum._2_Final: numProximaFase = -1; numPartidasASeremGeradas = 1; break;
            }

            competicao.equipes = EquipeRepositorio.Instance.getEquipesByCompeticao(competicao.id);
            competicao.grupos  = CompeticaoRepositorio.Instance.getGruposPorCompeticao(competicao.id, competicao.equipes);

            List <List <EquipeCompeticao> > timesProximaFase = Utilidades.listaEquipesClassificadas(competicao, numPartidasASeremGeradas, numProximaFase);

            for (int numGrupo = 0; numGrupo < competicao.numGrupos; numGrupo++)
            {
                DataGridView dgvGrupos = CompeticaoViewUtilidades.criaAba(CompeticaoViewUtilidades.getNomeGrupo(competicao.nomesGrupos, numGrupo + 1), numGrupo, tcClassificacao);
                dgvGrupos.Tag = new List <Object> {
                    numGrupo, competicao, usuarioLogado
                };
                dgvGrupos.CellMouseDoubleClick += CompeticaoViewUtilidades.dgvEquipesGrupo_CellMouseDoubleClick;

                if (numGrupo < competicao.grupos.Count)
                {
                    CompeticaoViewUtilidades.refreshDataGridViewGrupos(competicao, dgvGrupos, competicao.grupos[numGrupo], timesProximaFase[numGrupo]);
                }
                else
                {
                    CompeticaoViewUtilidades.refreshDataGridViewGrupos(competicao, dgvGrupos, null, null);
                }
            }

            // Cria a aba de artilheiros
            tcAbas.SelectedTab = tpArtilheiros;
            artilheiros        = CompeticaoRepositorio.Instance.getArtilheiros(competicao.id);
            refreshDataGridViewArtilheiros(dgvArtilheiros, artilheiros);

            // Verifica qual a atual fase da competicao
            if (competicao.status == StatusEnum._0_Encerrada)
            {
                lblFase.Text = "Campeão: " + competicao.campeao.nome;
            }
            else
            {
                string nomeFaseAtual = "";
                switch (competicao.fase_Atual)
                {
                case 0: nomeFaseAtual = "Classificatória"; break;

                case -1: nomeFaseAtual = "Final"; break;

                case -2: nomeFaseAtual = "Semi-Final"; break;

                case -3: nomeFaseAtual = "Quartas de Final"; break;

                case -4: nomeFaseAtual = "Oitava de Final"; break;

                case -5: nomeFaseAtual = "16 avos de Final"; break;

                case -6: nomeFaseAtual = "32 avos de Final"; break;
                }
                lblFase.Text = "Fase atual: " + nomeFaseAtual;
            }

            tcAbas.SelectedIndex = 0;

            //Preenche o ComboBox da busca
            cboCamposBusca.Items.Clear();
            cboCamposBusca.Items.Add("Equipe");

            cboCamposBusca.SelectedIndex = 0;
        }
示例#5
0
        private void dgvPartidas_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.RowIndex > -1 && e.ColumnIndex > -1)
            {
                if (e.Button == MouseButtons.Right)
                {
                    DataGridView dataGridView = (DataGridView)sender;

                    // Recupera a partida que foi selecionada
                    List <Competicao_Partida> partidas = competicao.partidas.FindAll(find => find.rodada == Convert.ToInt32(dataGridView.Tag));
                    Competicao_Partida        partida  = partidas[e.RowIndex];

                    // Cria o menu de contexto e suas respectivas configurações para cada equipe do grupo
                    ContextMenuStrip  contextMenuStrip = new ContextMenuStrip();
                    ToolStripMenuItem toolStripMenuItem;

                    toolStripMenuItem        = new ToolStripMenuItem("Importar planilha da partida");
                    toolStripMenuItem.Click += importarPlanilha;
                    toolStripMenuItem.Tag    = new List <Object>()
                    {
                        competicao, partida, dataGridView, partidas
                    };
                    toolStripMenuItem.Image   = Properties.Resources.import;
                    toolStripMenuItem.Enabled = !partida.encerrada;
                    contextMenuStrip.Items.Add(toolStripMenuItem);

                    toolStripMenuItem        = new ToolStripMenuItem("Exportar layout da planilha para a partida");
                    toolStripMenuItem.Click += exportarPlanilha;
                    toolStripMenuItem.Tag    = new List <Object>()
                    {
                        competicao, partida, dataGridView, partidas
                    };
                    toolStripMenuItem.Image   = Properties.Resources.export;
                    toolStripMenuItem.Enabled = !partida.encerrada;
                    contextMenuStrip.Items.Add(toolStripMenuItem);

                    toolStripMenuItem        = new ToolStripMenuItem("Definir árbitro da partida");
                    toolStripMenuItem.Image  = Properties.Resources.arbitro;
                    toolStripMenuItem.Click += (_sender, _e) => {
                        setArbitroForm = new SetArbitro(usuarioLogado, competicao, partida);

                        setArbitroForm.FormClosing += (__sender, __e) => {
                            if (!(setArbitroForm.arbitroSelecionado is null))
                            {
                                partida.arbitro    = setArbitroForm.arbitroSelecionado;
                                partida.id_Arbitro = setArbitroForm.arbitroSelecionado.pessoa.id;

                                CompeticaoRepositorio.Instance.updatePartida(ref competicao, partida);

                                int numRodada = Convert.ToInt32(Convert.ToInt32(dataGridView.Tag));
                                if (numRodada >= 0)
                                {
                                    numRodada--;
                                }
                                CompeticaoViewUtilidades.refreshDataGridViewRodadas(dataGridView, partidas, competicao, numRodada);
                            }
                        };

                        setArbitroForm.ShowDialog();
                    };
                    toolStripMenuItem.Tag = new List <Object>()
                    {
                        competicao, partida, dataGridView, partidas
                    };
                    toolStripMenuItem.Enabled = !partida.encerrada;
                    contextMenuStrip.Items.Add(toolStripMenuItem);

                    toolStripMenuItem        = new ToolStripMenuItem("Exportar jogos da rodada para HTML");
                    toolStripMenuItem.Click += (_sender, _e) => {
                        RelatorioHTML.relatorioPartidas(competicao, partidas, Convert.ToInt32(dataGridView.Tag), tcPartidas.SelectedTab.Text,
                                                        MessageBox.Show("Gostaria de exibir o logo das equipes no relatório de partidas?", String.Format("{0} - Relatório de partidas", competicao.nome), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes);
                    };
                    toolStripMenuItem.Tag = new List <Object>()
                    {
                        partidas
                    };
                    toolStripMenuItem.Image = Properties.Resources.export_report;
                    contextMenuStrip.Items.Add(toolStripMenuItem);

                    // Define onde será aberto o menu de contexto
                    contextMenuStrip.Show(this, this.PointToClient(MousePosition));
                }
            }
        }