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 })); } }
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 })); } }
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 })); } }
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); }