public ActionResult Resetar() { string mensagem = ""; try{ using (TransactionScope scope = new TransactionScope()){ db.Database.ExecuteSqlCommand("Delete from Jogo"); db.Database.ExecuteSqlCommand("Delete from Rancking"); db.Database.ExecuteSqlCommand("Delete from Rodada where isRodadaCarga=0"); db.Database.ExecuteSqlCommand("update UserProfile set situacao='ativo' where situacao='suspenso'"); Rancking ranking = null; List <Rodada> rodadas = db.Rodada.ToList(); List <UserProfile> jogadores = db.UserProfiles.ToList(); foreach (var rodada in rodadas) { foreach (var jogador in jogadores) { ranking = new Rancking(); ranking.rodada_id = rodada.Id; ranking.pontuacao = 5.0; ranking.posicao = 0; ranking.totalAcumulado = 50; ranking.userProfile_id = jogador.UserId; db.Rancking.Add(ranking); } } db.SaveChanges(); scope.Complete(); mensagem = "ok"; } }catch (Exception ex) { mensagem = ex.Message; } return(RedirectToAction("Edit", "Configuracao", new{ id = 1, msg = mensagem })); }
public void gravarPontuacaoNaRodada(int idRodada, UserProfile jogador, double pontosConquistados, bool isReprocessamento = false) { if (jogador.situacao.Equals("curinga") || jogador.situacao.Equals("pendente")) { return; } Rancking ran = null; double pontuacaoTotal = db.Rancking.Where(r => r.rodada.isAberta == false && r.userProfile_id == jogador.UserId && r.rodada_id < idRodada).OrderByDescending(r => r.Id).Take(9).Sum(r => r.pontuacao); if (isReprocessamento) { ran = db.Rancking.Where(r => r.rodada_id == idRodada && r.userProfile_id == jogador.UserId).Single(); ran.pontuacao = Math.Round(pontosConquistados, 2); //ran.totalAcumulado = Math.Round(pontuacaoTotal + pontosConquistados, 2); db.SaveChanges(); } else { ran = new Rancking(); ran.rodada_id = idRodada; ran.pontuacao = Math.Round(pontosConquistados, 2); ran.totalAcumulado = Math.Round(pontuacaoTotal + pontosConquistados, 2); ran.posicao = 0; ran.userProfile_id = jogador.UserId; ran.classeId = jogador.classeId; db.Rancking.Add(ran); db.SaveChanges(); } }
public float calcularPontosDesafiante(Jogo jogo) { float pontuacao = 0; // se a quantidade de games jogados for igual a zero, quer dizer que não houve jogo e o jogador ficará com zero de pontuação nesta rodada if (jogo.gamesJogados != 0 && !jogo.desafiante.situacao.Equals("curinga")) { int bonus = 1; float desempenho = calcularDesempenho(jogo.qtddSetsGanhosDesafiante, jogo.gamesGanhosDesafiante, jogo.setsJogados, jogo.gamesJogados); if (jogo.idDoVencedor == jogo.desafiante_id) { bonus = 6; } Rancking ranking = db.Rancking.Where(r => r.userProfile_id == jogo.desafiado_id && r.rodada.isAberta == false && r.rodada_id < jogo.rodada_id).OrderByDescending(ran => ran.rodada_id).Take(1).Single(); if (ranking.posicao == 0) { ranking.posicao = 32; // jogador sem ranking ficara na posicao 32 para efeitos de calculos } pontuacao = (desempenho / (ranking.posicao + 4)) + bonus; pontuacao = bonificacaoPorDiferencaPlacar(jogo, "desafiante", pontuacao); if ((jogo.idDoVencedor == jogo.desafiante_id) && (jogo.situacao_Id == 5)) { // WO pontuacao = (pontuacao * 70) / 100; } if ((jogo.idDoVencedor != jogo.desafiante_id) && (jogo.situacao_Id == 5)) { // WO pontuacao = 0; } pontuacao = (float)Math.Round(pontuacao, 2); } return(pontuacao); }
private void gerarRankingInicial(UserProfile model, string perfil) { if (((perfil.Equals("admin")) || (perfil.Equals("organizador"))) && (!model.isRanckingGerado)) { List <Rodada> rodadas = db.Rodada.Where(r => r.isAberta == false && r.barragemId == model.barragemId).OrderByDescending(r => r.Id).Take(10).ToList(); Rancking ranking = null; Rodada rodada = null; if (rodadas.Count() != 0) { rodada = rodadas[0]; } int totalAcumulado = getPontuacaoPorClasse(rodada, model.classeId); double pontuacao = (double)totalAcumulado / 10; foreach (var item in rodadas) { int existe = db.Rancking.Where(r => r.rodada_id == item.Id && r.userProfile_id == model.UserId).Count(); if (existe == 0) { ranking = new Rancking(); ranking.rodada_id = item.Id; ranking.pontuacao = pontuacao; ranking.posicao = 0; ranking.totalAcumulado = totalAcumulado; ranking.userProfile_id = model.UserId; ranking.classeId = model.classeId; db.Rancking.Add(ranking); db.SaveChanges(); } } model.isRanckingGerado = true; db.Entry(model).State = EntityState.Modified; db.SaveChanges(); } }
public ActionResult EditPontuacao(Rancking r) { double pontuacaoTotal = db.Rancking.Where(ran => ran.rodada.isAberta == false && ran.userProfile_id == r.userProfile_id && ran.rodada_id < r.rodada_id).OrderByDescending(ran => ran.Id).Take(9).Sum(ran => ran.pontuacao); r.totalAcumulado = r.pontuacao + pontuacaoTotal; db.Entry(r).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Detalhes", new { userId = r.userProfile_id })); }
void mostrar_rancking() { foreach (Transform child in puntos_Padre) { Destroy(child.gameObject); } for (int i = 0; i < rancking.Count; i++) { GameObject temporal_puntos_prefab = Instantiate(puntos_Prefab) as GameObject; temporal_puntos_prefab.transform.localScale = new Vector3(1, 1, 1); temporal_puntos_prefab.transform.SetParent(puntos_Padre, false); Rancking temporal_rancking = rancking[i]; temporal_puntos_prefab.GetComponent <rancking_Script>().poner_Datos("#" + (i + 1).ToString(), temporal_rancking.NombreCuenta, temporal_rancking.Puntaje.ToString()); } }
public ActionResult EditPontuacao(int Id) { Rancking r = db.Rancking.Find(Id); return(View(r)); }
public void gravarPontuacaoNaRodada(int idRodada, UserProfile jogador, double pontosConquistados, bool isReprocessamento = false) { try { if (jogador.situacao.Equals("curinga") || jogador.situacao.Equals("pendente")) { return; } Rancking ran = null; double pontuacaoTotal = 0; try { int quantidadeDeRodadasParaPontuacao = 9; Rodada rodadaAtual = db.Rodada.Where(r => r.Id == idRodada).Single(); if (rodadaAtual.temporada.iniciarZerada) { int quantidadeDeRodadasRealizadas = db.Rodada.Where(r => r.temporadaId == rodadaAtual.temporadaId && r.Id != idRodada).Count(); if (quantidadeDeRodadasRealizadas < quantidadeDeRodadasParaPontuacao) { quantidadeDeRodadasParaPontuacao = quantidadeDeRodadasRealizadas; } } if (quantidadeDeRodadasParaPontuacao > 0) { pontuacaoTotal = db.Rancking.Where(r => r.rodada.isAberta == false && r.userProfile_id == jogador.UserId && r.rodada_id < idRodada). OrderByDescending(r => r.rodada_id).Take(quantidadeDeRodadasParaPontuacao).Sum(r => r.pontuacao); } } catch (Exception e) { return; } if (isReprocessamento) { ran = db.Rancking.Where(r => r.rodada_id == idRodada && r.userProfile_id == jogador.UserId).Single(); ran.pontuacao = Math.Round(pontosConquistados, 2); //ran.totalAcumulado = Math.Round(pontuacaoTotal + pontosConquistados, 2); db.SaveChanges(); } else { var naoExisteRanking = db.Rancking.Where(r => r.rodada_id == idRodada && r.userProfile_id == jogador.UserId).Count(); if (naoExisteRanking == 0) { ran = new Rancking(); ran.rodada_id = idRodada; ran.pontuacao = Math.Round(pontosConquistados, 2); ran.totalAcumulado = Math.Round(pontuacaoTotal + pontosConquistados, 2); ran.posicao = 0; ran.userProfile_id = jogador.UserId; ran.classeId = jogador.classeId; db.Rancking.Add(ran); db.SaveChanges(); } } } catch (Exception e) { System.ArgumentException argEx = new System.ArgumentException("Jogador:" + jogador.UserId, "Jogador:" + jogador.UserId, e); throw argEx; } }