/// <summary> /// Recupera la informacion completa de una cuenta en la base de datos /// </summary> /// <param name="CuentaARecuperar">String</param> /// <returns>CuentaModel o Null si la cuenta no existe</returns> public CuentaModel RecuperarCuenta(CuentaModel CuentaARecuperar) { using (PersistenciaContainer Persistencia = new PersistenciaContainer()) { Cuenta CuentaRecuperada = Persistencia.CuentaSet.Where (cuenta => cuenta.Usuario == CuentaARecuperar.NombreUsuario).FirstOrDefault(); if (CuentaRecuperada != null) { CuentaModel Cuenta = ConvertirACuentaModel(CuentaRecuperada); JugadorModel Jugador = ConvertirAUsuarioModel(CuentaRecuperada.Usuario1); List <CorredorAdquiridoModel> CorredoresAdquiridos = new List <CorredorAdquiridoModel>(); List <SeguidorAdquiridoModel> SeguidoresAdquiridos = new List <SeguidorAdquiridoModel>(); foreach (CorredorAdquirido Corredor in CuentaRecuperada.Usuario1.CorredoresAdquiridos) { CorredoresAdquiridos.Add(ConvertirCorredorAdquiridoModel(Corredor)); } foreach (PerseguidorAdquirido Perseguidor in CuentaRecuperada.Usuario1.PerseguidorAdquirido) { SeguidoresAdquiridos.Add(ConvertirSeguidorAdquiridoModel(Perseguidor)); } Jugador.CorredoresAdquiridos = CorredoresAdquiridos; Jugador.SeguidoresAdquiridos = SeguidoresAdquiridos; Cuenta.Jugador = Jugador; return(Cuenta); } return(null); } }
/// <summary> /// Cuenta el numero de Cuentas que tienen el mismo nombre de usuario /// </summary> /// <param name="NombreUsuario">String</param> /// <returns>La cantidad de usuarios repetidos</returns> private int ContarNombreDeUsuariosRepetidos(String NombreUsuario) { using (PersistenciaContainer Persistencia = new PersistenciaContainer()) { return(Persistencia.CuentaSet.Where (cuenta => cuenta.Usuario == NombreUsuario).Count()); } }
/// <summary> /// Actualiza los datos del Jugador de la cuenta /// </summary> /// <param name="CuentaActualizar">Cuenta a la que se actualizaran los datos</param> public void GuardarDatosDeLaCuenta(CuentaModel CuentaActualizar) { using (PersistenciaContainer Persistencia = new PersistenciaContainer()) { Cuenta CuentaAModificar = Persistencia.CuentaSet.Where(cuenta => cuenta.Usuario == CuentaActualizar.NombreUsuario).FirstOrDefault(); CuentaAModificar.Usuario1.UvCoins = CuentaActualizar.Jugador.UvCoins; CuentaAModificar.Usuario1.MejorPuntacion = CuentaActualizar.Jugador.MejorPuntacion; Persistencia.SaveChanges(); } }
/// <summary> /// Cambia el estado de la cuenta de no verificada a verificada /// </summary> /// <param name="Cuenta">CuentaModel</param> /// <returns>Verdadero si la cuenta se verifico correctamente, falso si no</returns> public Boolean VerificarCuenta(CuentaModel Cuenta) { using (PersistenciaContainer Persistencia = new PersistenciaContainer()) { Cuenta CuentaAVerificar = Persistencia.CuentaSet.Where(cuentaRecuperada => cuentaRecuperada.Usuario == Cuenta.NombreUsuario).FirstOrDefault(); if (CuentaAVerificar != null) { CuentaAVerificar.Valida = true; Persistencia.SaveChanges(); return(true); } return(false); } }
/// <summary> /// Almacena en la base de datos una cuenta si el nombre de usuario no se repite /// </summary> /// <param name="cuentaNueva">CuentaModel</param> /// <returns>La cuenta registrada</returns> public CuentaModel Registrarse(CuentaModel cuentaNueva) { CuentaModel CuentaGuardada = null; using (PersistenciaContainer Persistencia = new PersistenciaContainer()) { int UsuariosRepetidos = ContarNombreDeUsuariosRepetidos(cuentaNueva.NombreUsuario); if (UsuariosRepetidos == 0) { Cuenta CuentaAGuardar = CrearCuentaAGuadar(cuentaNueva); CuentaAGuardar.Usuario1 = ConvertirAJugador(cuentaNueva.Jugador); Persistencia.CuentaSet.Add(CuentaAGuardar); Persistencia.SaveChanges(); CuentaGuardada = ConvertirACuentaModel(CuentaAGuardar); CuentaGuardada.Jugador = ConvertirAUsuarioModel(CuentaAGuardar.Usuario1); } } return(CuentaGuardada); }
/// <summary> /// Obtiene las primeras 5 CuentasConLasMejoresPuntuaciones /// </summary> /// <returns>Una lista de CuentaModel que tienen las mejores 5 puntuaciones</returns> public List <CuentaModel> RecuperarMejoresPuntuaciones() { List <CuentaModel> MayoresPuntuaciones = new List <CuentaModel>(); using (PersistenciaContainer Persistencia = new PersistenciaContainer()) { var CuentasDeMayoresPuntuaciones = Persistencia.CuentaSet.OrderByDescending(cuenta => cuenta.Usuario1.MejorPuntacion).Take(5); if (CuentasDeMayoresPuntuaciones != null) { foreach (Cuenta CuentaRecuperada in CuentasDeMayoresPuntuaciones) { CuentaModel Cuenta = ConvertirACuentaModel(CuentaRecuperada); JugadorModel Jugador = ConvertirAUsuarioModel(CuentaRecuperada.Usuario1); List <CorredorAdquiridoModel> CorredoresAdquiridos = new List <CorredorAdquiridoModel>(); List <SeguidorAdquiridoModel> SeguidoresAdquiridos = new List <SeguidorAdquiridoModel>(); Cuenta.Jugador = Jugador; MayoresPuntuaciones.Add(Cuenta); } } } return(MayoresPuntuaciones); }
/// <summary> /// Verifica si las credenciales ingresadas son validas para la cuenta ingresada /// </summary> /// <param name="Cuenta">CuentaModel</param> /// <returns>1 si las credenciales son validas, 0 si no, -1 si la cuenta no esta verificada</returns> public int IniciarSesion(CuentaModel Cuenta) { using (PersistenciaContainer Persistencia = new PersistenciaContainer()) { int LoginValido = 0; Cuenta.Contrasena = Encriptador.ComputeSha256Hash(Cuenta.Contrasena); int CuentaExistente = Persistencia.CuentaSet.Where (cuentaEnDB => cuentaEnDB.Usuario == Cuenta.NombreUsuario && cuentaEnDB.Password == Cuenta.Contrasena).Count(); if (CuentaExistente == 1) { if (Persistencia.CuentaSet.Where(cuentaEnDB => cuentaEnDB.Usuario == Cuenta.NombreUsuario && cuentaEnDB.Password == Cuenta.Contrasena && cuentaEnDB.Valida).Count() == 1) { LoginValido = 1; } else { LoginValido = -1; } } return(LoginValido); } }