/// <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 ServidorSE(); using (conexionBaseDatos) { DAO.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 = true; conexionBaseDatos.Entry(cuentaRecuperada).State = System.Data.Entity.EntityState.Modified; conexionBaseDatos.SaveChanges(); return(new Jugador() { Apodo = cuentaRecuperada.Jugador.apodo }); } } } catch (System.Data.Entity.Core.EntityException) { return(new Jugador { Apodo = errorConexionBaseDatos }); } } return(null); }
/// <summary> /// /// </summary> /// <param name="jugador"></param> /// <param name="cuenta"></param> /// <returns></returns> public int RegistrarJugador(Jugador jugador, Cuenta cuenta) { conexionBaseDatos = new ServidorSE(); using (conexionBaseDatos) { DAO.Jugador jugadorRecuperado; DAO.Cuenta cuentaRecuperada; try { jugadorRecuperado = conexionBaseDatos.JugadorSet.Where(j => j.apodo.Equals(jugador.Apodo)).FirstOrDefault(); cuentaRecuperada = conexionBaseDatos.CuentaSet.Where(c => c.correo.Equals(cuenta.Correo)).FirstOrDefault(); if (jugadorRecuperado != null && jugadorRecuperado.apodo.Equals(jugador.Apodo)) { return((int)EstadoDeOperacion.JugadorEncontrado); } if (cuentaRecuperada != null && cuentaRecuperada.correo.Equals(cuenta.Correo)) { return((int)EstadoDeOperacion.CuentaEncontrada); } String nuevoSalt; nuevoSalt = ObtenerSalt(); DAO.Jugador nuevoJugador = new DAO.Jugador() { apodo = jugador.Apodo, nombre = jugador.Nombre, apellidos = jugador.Apellidos }; conexionBaseDatos.CuentaSet.Add(new DAO.Cuenta() { correo = cuenta.Correo, password = ObtenerHash(cuenta.Contraseña, nuevoSalt), salt = nuevoSalt, validada = false, secionIniciada = false, Jugador = nuevoJugador, }); conexionBaseDatos.SaveChanges(); } catch (System.Data.Entity.Core.EntityException) { return((int)EstadoDeOperacion.ErrorConexionBD); } catch (Exception) { return((int)EstadoDeOperacion.Excepcion); } } return((int)EstadoDeOperacion.OperacionExitosa); }
/// <summary> /// Cambia el atributo de "validada" a true porque valida la cuenta /// </summary> /// <param name="cuenta">Cuenta ingresada a buscar</param> /// <param name="codigo">codigo de activación</param> /// <returns></returns> public int ActivarCuentaJugador(Cuenta cuenta, String codigo) { conexionBaseDatos = new ServidorSE(); using (conexionBaseDatos) { DAO.Cuenta cuentaRecuperada; try { cuentaRecuperada = conexionBaseDatos.CuentaSet.Where(c => c.correo.Equals(cuenta.Correo)).FirstOrDefault(); if (cuentaRecuperada != null && !cuentaRecuperada.correo.Equals(cuenta.Correo)) { return((int)EstadoDeOperacion.CuentaNoEncontrada); } if (cuentaRecuperada == null) { return((int)EstadoDeOperacion.CuentaNoEncontrada); } if (!cuentaRecuperada.salt.Equals(codigo)) { return((int)EstadoDeOperacion.CodigoInvalido); } cuentaRecuperada.validada = true; conexionBaseDatos.Entry(cuentaRecuperada).State = System.Data.Entity.EntityState.Modified; conexionBaseDatos.SaveChanges(); } catch (System.Data.Entity.Core.EntityException) { return((int)EstadoDeOperacion.ErrorConexionBD); } catch (Exception) { return((int)EstadoDeOperacion.Excepcion); } } return((int)EstadoDeOperacion.OperacionExitosa); }