Exemplo n.º 1
0
 public ActionResult EfetuarSorteioFaseRepescagem(int torneioId)
 {
     try
     {
         db.Database.ExecuteSqlCommand("Delete from Jogo where torneioId=" + torneioId + "and faseTorneio=2");
         var torneio = db.Torneio.Find(torneioId);
         InscricaoTorneio        jogador1   = null;
         InscricaoTorneio        jogador2   = null;
         List <InscricaoTorneio> inscricoes = null;
         for (int i = 1; i <= torneio.qtddClasses; i++)
         {
             inscricoes = db.InscricaoTorneio.Where(r => r.torneioId == torneioId && r.classe == i && r.isAtivo && r.colocacao == 101).ToList();
             int j = 1;
             foreach (InscricaoTorneio inscricao in inscricoes)
             {
                 jogador1 = selecionarAdversario(inscricoes);
                 jogador2 = selecionarAdversario(inscricoes);
                 var jogador2Id = jogador2.userId;
                 criarJogo(jogador1.userId, jogador2Id, torneioId, i, 2, j++);
             }
         }
         return(RedirectToAction("TabelaJogos", new { torneioId = torneioId, Msg = "OK" }));
     }
     catch (Exception e)
     {
         return(RedirectToAction("TabelaJogos", new { torneioId = torneioId, Msg = e.Message }));
     }
 }
Exemplo n.º 2
0
 public ActionResult Inscricao(int torneioId, int classeInscricao, int vrInscricao)
 {
     try
     {
         var userId      = WebSecurity.GetUserId(User.Identity.Name);
         var isInscricao = db.InscricaoTorneio.Where(i => i.torneioId == torneioId && i.userId == userId).Count();
         if (isInscricao > 0)
         {
             InscricaoTorneio it = db.InscricaoTorneio.Where(i => i.torneioId == torneioId && i.userId == userId).Single();
             db.InscricaoTorneio.Remove(it);
         }
         else
         {
             InscricaoTorneio inscricao = new InscricaoTorneio();
             inscricao.classe    = classeInscricao;
             inscricao.torneioId = torneioId;
             inscricao.userId    = userId;
             if (vrInscricao > 0)
             {
                 inscricao.isAtivo = false;
             }
             else
             {
                 inscricao.isAtivo = true;
             }
             db.InscricaoTorneio.Add(inscricao);
         }
         db.SaveChanges();
         return(RedirectToAction("Detalhes", new { id = torneioId, Msg = "OK" }));
     }catch (Exception ex) {
         return(RedirectToAction("Detalhes", new { id = torneioId, Msg = ex.Message }));
     }
 }
Exemplo n.º 3
0
 public ActionResult EfetuarSorteioFaseEliminatoria(int torneioId)
 {
     try
     {
         db.Database.ExecuteSqlCommand("Delete from Jogo where torneioId=" + torneioId + "and faseTorneio>=1");
         var torneio = db.Torneio.Find(torneioId);
         InscricaoTorneio        jogador1   = null;
         InscricaoTorneio        jogador2   = null;
         List <InscricaoTorneio> inscricoes = null;
         for (int i = 1; i <= torneio.qtddClasses; i++)
         {
             inscricoes = db.InscricaoTorneio.Where(r => r.torneioId == torneioId && r.classe == i && r.isAtivo && (r.colocacao == null || r.colocacao == 101)).ToList();
             int quantidadeJogos   = informarQtddJogos(inscricoes.Count());
             int qtddJogadoresFake = getQtddJogadoresFake(inscricoes.Count(), quantidadeJogos);
             int ordemJogos        = quantidadeJogos;
             for (int j = 1; j <= quantidadeJogos; j++)
             {
                 var jogador2Id = 0;
                 jogador1 = selecionarAdversario(inscricoes);
                 if (qtddJogadoresFake > j)
                 {
                     jogador2Id = 0;
                 }
                 else
                 {
                     jogador2   = selecionarAdversario(inscricoes);
                     jogador2Id = jogador2.userId;
                 }
                 criarJogo(jogador1.userId, jogador2Id, torneioId, i, 1, ordemJogos--);
             }
             int qtddRodadas  = getQtddRodadas(quantidadeJogos);
             int numeroRodada = 2;
             for (int k = qtddRodadas; k >= 1; k--)
             {
                 var qtddJogosPorRodada = getQtddJogosPorRodada(k);
                 for (int y = 1; y <= qtddJogosPorRodada; y++)
                 {
                     criarJogo(0, 0, torneioId, i, numeroRodada, y);
                 }
                 numeroRodada++;
             }
         }
         return(RedirectToAction("TabelaJogos", new { torneioId = torneioId, Msg = "OK" }));
     }
     catch (Exception e)
     {
         return(RedirectToAction("TabelaJogos", new { torneioId = torneioId, Msg = e.Message }));
     }
 }
Exemplo n.º 4
0
        private InscricaoTorneio selecionarAdversario(List <InscricaoTorneio> participantes)
        {
            var adversario = new InscricaoTorneio();

            if (participantes.Count == 0)
            {
                adversario.Id = 0;
                return(adversario);
            }
            else if (participantes.Count == 1)
            {
                adversario = participantes[0]; //add it
                participantes.RemoveAt(0);
                return(adversario);
            }
            Random r           = new Random();
            int    randomIndex = r.Next(1, participantes.Count); //Choose a random object in the list

            adversario = participantes[randomIndex];             //add it
            participantes.RemoveAt(randomIndex);
            return(adversario);
        }