public List <RespRanking> Ranking(int idUsuario) { List <RespRanking> rankings = new List <RespRanking>(); List <Experiencia> experiencia = JogoBD.PegarExperiencias(); List <Usuario> usuariosTop = JogoBD.TopCinco(); foreach (Usuario usuario in usuariosTop) { RespRanking ranking = new RespRanking(); List <Experiencia> niveisAbaixo = experiencia.Where(e => e.Valor < usuario.Experiencia).ToList(); if (niveisAbaixo == null || niveisAbaixo.Count == 0) { ranking.Nivel = 0; } else { ranking.Nivel = niveisAbaixo.Max(e => e.Nivel); } ranking.Login = usuario.Login; ranking.Posicao = usuariosTop.IndexOf(usuario) + 1; ranking.Experiencia = usuario.Experiencia; rankings.Add(ranking); } if (!usuariosTop.Any(u => u.Id == idUsuario)) { Usuario usuario = UsuarioBD.PegarUsuarioPeloId(idUsuario); RespRanking ranking = new RespRanking(); List <Experiencia> niveisAbaixo = experiencia.Where(e => e.Valor < usuario.Experiencia).ToList(); if (niveisAbaixo == null || niveisAbaixo.Count == 0) { ranking.Nivel = 0; } else { ranking.Nivel = niveisAbaixo.Max(e => e.Nivel); } ranking.Login = usuario.Login; ranking.Experiencia = usuario.Experiencia; ranking.Posicao = JogoBD.PegarColocacaoPelaExperiencia(usuario.Experiencia); rankings.Add(ranking); } return(rankings); }
public static RespUsuario MontarRespUsuario(Usuario usuarioBD) { JogoBD JogoBD = new JogoBD(); Token Token = new Token(); RespUsuario usuario = new RespUsuario { Id = usuarioBD.Id, Login = usuarioBD.Login, Email = usuarioBD.Email, Experiencia = usuarioBD.Experiencia, Cash = usuarioBD.Cash }; List <Experiencia> experiencia = JogoBD.PegarExperiencias(); List <Experiencia> niveisAbaixo = experiencia.Where(e => e.Valor < usuario.Experiencia).ToList(); if (niveisAbaixo == null || niveisAbaixo.Count == 0) { usuario.Nivel = 0; } else { usuario.Nivel = niveisAbaixo.Max(e => e.Nivel); } List <Experiencia> niveisAcima = experiencia.Where(e => e.Valor > usuario.Experiencia).ToList(); if (niveisAcima == null || niveisAcima.Count == 0) { usuario.ExperienciaProximoNivel = 0; } else { usuario.ExperienciaProximoNivel = niveisAcima.Min(e => e.Valor) - usuario.Experiencia; } usuario.Skins = JogoBD.PegarSkinAtiva(usuario.Id); usuario.Token = Token.Gerar(usuario.Login, usuario.Id, usuarioBD.IsAdmin); return(usuario); }