/// <summary> /// Permite iniciar sesión comparando la cuenta ingresada con la base de datos /// </summary> /// <param name="cuenta"> cuenta ingresada por el usuario</param> /// <returns></returns> public Jugador IniciarSesion(Cuenta cuenta) { conexionBaseDatos = new ErstickModeloContainer(); using (conexionBaseDatos) { erstickDAO.Cuenta cuentaRecuperada; try { cuentaRecuperada = conexionBaseDatos.CuentaSet.Where(c => c.correo.Equals(cuenta.Correo)).FirstOrDefault(); if (cuentaRecuperada != null && cuentaRecuperada.correo.Equals(cuenta.Correo)) { String contreseñaHasheada = ObtenerHash(cuenta.Contraseña, cuentaRecuperada.salt); if (contreseñaHasheada.Equals(cuentaRecuperada.password) && cuentaRecuperada.secionIniciada == false) { cuentaRecuperada.secionIniciada = true; conexionBaseDatos.Entry(cuentaRecuperada).State = System.Data.Entity.EntityState.Modified; conexionBaseDatos.SaveChanges(); return(new Jugador() { Apodo = cuentaRecuperada.Jugador.apodo }); } if (contreseñaHasheada.Equals(cuentaRecuperada.password) && cuentaRecuperada.secionIniciada == true) { return(new Jugador { Apodo = "Error la cuenta se encuentra iniciada" }); } } } catch (System.Data.Entity.Core.EntityException) { return(new Jugador { Apodo = errorConexionBaseDatos }); } } return(null); }