Ejemplo n.º 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);
            }
        }
Ejemplo n.º 2
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;
        }
Ejemplo n.º 3
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));
                }
            }
        }