예제 #1
0
 public void salvarJogo(JOGO jogo)
 {
     using (CAMPEONATOSEntities context = new CAMPEONATOSEntities())
     {
         context.JOGO.Add(jogo);
         context.SaveChanges();
     }
 }
예제 #2
0
        public void realizarSorteio(int idCampeonato, DateTime dataInicio, bool checkedDuasDatas)
        {
            int[,] matriz;
            int auxIdTime;
            int auxIdTimeAdversario;
            int auxIdRodada;

            GerarRodadas a = new GerarRodadas();

            //Recebe os times vinculados ao campeonato.
            List <int> listTimesCampeonato = new List <int>();

            listTimesCampeonato = a.retornarTimesCampeonato(idCampeonato);

            if (listTimesCampeonato.Count == 20)
            {
                //Gera as rodadas e insere no banco
                a.salvarRodadas(idCampeonato, dataInicio, checkedDuasDatas);

                //Gera os jogos para o campeonato.
                matriz = a.GenerateRoundRobin(20);

                for (int i = 0; i < (matriz.GetLength(0) / 2); i++)
                {
                    //Linha do time
                    auxIdTime = listTimesCampeonato[i];

                    for (int j = 0; j < matriz.GetLength(1); j++)
                    {
                        //Adversario
                        auxIdTimeAdversario = listTimesCampeonato[matriz[i, j]];

                        //Busca o id da roda x no compeonato y.
                        auxIdRodada = a.retornarIdRodada(idCampeonato, j + 1);

                        //Time casa auxIdTime
                        //Time fora auxIdTimeAdversario

                        //Salva na tabela JOGO.
                        JOGO jogo = new JOGO(auxIdRodada, idCampeonato, auxIdTime, 0, 0, auxIdTimeAdversario, 0, 0, "");
                        a.salvarJogo(jogo);
                    }
                }

                for (int i = (matriz.GetLength(0) / 2); i < (matriz.GetLength(0)); i++)
                {
                    //Linha do time
                    auxIdTime = listTimesCampeonato[i];

                    for (int j = 0; j < (matriz.GetLength(1)); j++)
                    {
                        //Adversario
                        auxIdTimeAdversario = listTimesCampeonato[matriz[i, j]];

                        //Busca o id da roda x no compeonato y.
                        auxIdRodada = a.retornarIdRodada(idCampeonato, j + 20);

                        //Time casa auxIdTime
                        //Time fora auxIdTimeAdversario

                        //Salva na tabela JOGO.
                        JOGO jogo = new JOGO(auxIdRodada, idCampeonato, auxIdTime, 0, 0, auxIdTimeAdversario, 0, 0, "");
                        a.salvarJogo(jogo);
                    }
                }
            }
            else
            {
                if (listTimesCampeonato.Count == 0)
                {
                    MessageBox.Show("Nenhum time vinculado ao campeonato!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    MessageBox.Show("Campeonato precisa ter 20 time para gerar as rodadas!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }