/// <summary>
 /// Inicia sesión en el sistema.
 /// </summary>
 /// <param name="usuario">Usuario con el que fue registrado el jugador.</param>
 /// <param name="contrasena">Contraseña con la que se registró el jugador.</param>
 /// <returns>Si existe un jugador con ese usuario y contraseña regresa el usuario, sino regresa un mensaje de retroalimentación</returns>
 public string IniciarSesion(string usuarioIngresado, string contrasenaIngresada)
 {
     using (BattlesharpEntities BaseDeDatos = new BattlesharpEntities())
     {
         Utilidad utilidad = new Utilidad();
         //Primero se verifica que el jugador exista en la base de datos
         if (utilidad.ExisteUsuario(usuarioIngresado))
         {
             try
             {
                 //Se busca el jugador que coincida su usario y su contraseña
                 contrasenaIngresada = utilidad.sha256(contrasenaIngresada);
                 var jugadorCoincidente = (from j in BaseDeDatos.jugador
                                           where j.usuario.Equals(usuarioIngresado) &&
                                           j.contrasena.Equals(contrasenaIngresada)
                                           select j).SingleOrDefault();
                 //Se regresa el usuario del jugador para que se muestre en el menú principal
                 return(jugadorCoincidente.usuario);
             }
             catch (NullReferenceException)
             {
                 return("ContrasenaIncorrecta");
             }
         }
         //Sí no existe el usuario regresa el siguiente mensaje que se usará para mostrarla al cliente
         else
         {
             return("UsuarioNoExiste");
         }
     }
 }
        /// <summary>
        /// Método que registra un nuevo jugador en el sistema.
        /// </summary>
        /// <remarks>
        /// El usuario con el que se registra el jugador no debe estar registrado previamente.
        /// </remarks>
        /// <param name="usuarioIngresado">Usuario que ingresó el jugador para que pueda iniciar sesión posteriormente.</param>
        /// <param name="contrasenaIngresada">Contraseña que ingresó el jugador para que pueda iniciar sesión posteriormente.</param>
        /// <param name="nombreIngresado">Nombre del jugador.</param>
        /// <returns>Mensaje de retroalimentación para dar a conocer el resultado del registro.</returns>
        public string RegistrarJugador(string usuarioIngresado, string contrasenaIngresada, string nombreIngresado)
        {
            Utilidad utilidad = new Utilidad();

            using (BattlesharpEntities BaseDeDatos = new BattlesharpEntities())
            {
                //Si no existe un jugador registrado con ese usuario procede a registrarlo
                if (!utilidad.ExisteUsuario(usuarioIngresado))
                {
                    var jugadoresRegistrados = BaseDeDatos.jugador.Count();
                    //Se crea el jugador con la información pasada por parámetros
                    jugador nuevoJugador = new jugador
                    {
                        idjugador  = jugadoresRegistrados,
                        usuario    = usuarioIngresado,
                        contrasena = utilidad.sha256(contrasenaIngresada),
                        nombre     = nombreIngresado
                    };
                    //Se registra el jugador en la base de datos
                    BaseDeDatos.jugador.Add(nuevoJugador);
                    //Se guardan los cambios
                    BaseDeDatos.SaveChanges();
                    //Regresa el mensaje de éxito para ser mostrado en el cliente
                    return("JugadorRegistrado");
                }
                //Si el jugador ya está registrado en la base de datos
                else
                {
                    return("UsuarioEnUso");
                }
            }
        }
示例#3
0
 /// <summary>
 /// Busca un jugador registrado.
 /// </summary>
 /// <param name="usuarioPorBuscar">El jugador será buscado por su usuario.</param>
 /// <returns>Regresa el jugador que se encontró.</returns>
 public jugador BuscarJugador(string usuarioPorBuscar)
 {
     using (BattlesharpEntities BaseDeDatos = new BattlesharpEntities())
     {
         //Se busca al jugador que tenga un usuario que coincida con el usuario ingresado
         var jugadorCoincidente = (from j in BaseDeDatos.jugador
                                   where j.usuario.Equals(usuarioPorBuscar)
                                   select j).SingleOrDefault();
         //Regresa el jugador encontrado
         return(jugadorCoincidente);
     }
 }
示例#4
0
 /// <summary>
 /// Verifica si un jugador existe.
 /// </summary>
 /// <remarks>
 /// Esta búsqueda se hace por su usuario.
 /// </remarks>
 /// <param name="usuarioPorBuscar">Usuario del jugador que se va a buscar.</param>
 /// <returns>Regresa si es cierto o falso si el jugador existe.</returns>
 public bool ExisteUsuario(string usuarioPorBuscar)
 {
     using (BattlesharpEntities BaseDeDatos = new BattlesharpEntities())
     {
         //Cuenta jugadores registrados con ese usuario hay
         var jugadoresConEseUsuario = (from u in BaseDeDatos.jugador
                                       where u.usuario.Equals(usuarioPorBuscar)
                                       select u).Count();
         //Si no hay jugadores con ese usuario
         if (jugadoresConEseUsuario == 0)
         {
             return(false);
         }
         //Si hay un jugador con ese usuario
         else
         {
             return(true);
         }
     }
 }
        /// <summary>
        /// Consigue la lista de puntuaciones ordenada de mayor a menor
        /// </summary>
        /// <returns>Regresa una lista de Tuplas para poder ser mostrado</returns>
        public List <Tuple <string, int> > ObtenerMejoresPuntuaciones()
        {
            List <Tuple <string, int> > puntuaciones = new List <Tuple <string, int> >();

            using (BattlesharpEntities BaseDeDatos = new BattlesharpEntities())
            {
                //Se obtienen todos los elementos de la vista de mejores
                var puntuacionesOrdenadas = (from j in BaseDeDatos.mejores
                                             select j);
                //Cada elementos del resultado de la busqueda se agrega a la lista
                foreach (var elemento in puntuacionesOrdenadas)
                {
                    //Como la tupla solo tiene formato string e int primero se agrega
                    //el usuario ganador y después los puntos obtenidos
                    puntuaciones.Add(new Tuple <string, int>(elemento.usuario, elemento.puntos));
                }
                //Regresa la lista de tuplas
                return(puntuaciones);
            }
        }
        /// <summary>
        /// Registra una nueva puntuación
        /// </summary>
        /// <param name="usuarioGanador">Usuario que ganó, se usa para saber el id del jugador</param>
        /// <param name="puntosObtenidos">Los puntos que tuvo al final de la partida</param>
        /// <returns>Mensaje de retroalimentación para dar a conocer el resultado del registro.</returns>
        public string RegistrarPuntuacion(string usuarioGanador, int puntosObtenidos)
        {
            Utilidad utilidad = new Utilidad();

            using (BattlesharpEntities BaseDeDatos = new BattlesharpEntities())
            {
                //Se obtiene el jugador ganador buscandolo por su usuario para obtener su ID
                var jugadorGanador          = utilidad.BuscarJugador(usuarioGanador);
                var puntuacionesRegistradas = BaseDeDatos.puntuacion.Count();
                //Se crea la nueva puntuacion obteniendo el ID del jugador ganador
                puntuacion nuevaPuntuacion = new puntuacion()
                {
                    idpuntuacion = puntuacionesRegistradas,
                    idjugador    = jugadorGanador.idjugador,
                    puntos       = puntosObtenidos
                };
                //Se agrega la puntuación a la base de datos
                BaseDeDatos.puntuacion.Add(nuevaPuntuacion);
                //Se guardan los cambios en la base de datos
                BaseDeDatos.SaveChanges();
                //Regresa un mensaje de texto para ser mostrado en el cliente
                return("Puntuación registrada");
            }
        }