/// <summary>
        /// Busca un Usuario con un Id determinado en la base de datos.
        /// autor: Paula Pedrosa
        /// </summary>
        /// <param name="idUsuario"> Id del Usuario que se quiere buscar </param>
        /// <returns>Un objeto Usuario, o null si no encuentra el Usuario.</returns>
        public Usuario obtenerUsuarioPorId(int idUsuario)
        {
            SqlConnection con = new SqlConnection(cadenaDeConexion);
            SqlCommand    cmd = new SqlCommand();


            Usuario usuario = null;

            try
            {
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                    cmd.Connection = con;
                }

                string sql = @"SELECT *
                                FROM Usuarios
                                WHERE idUsuario = @idUsuario";
                cmd.Parameters.Clear();
                cmd.Parameters.AddWithValue("@idUsuario", idUsuario);
                cmd.CommandText = sql;
                SqlDataReader dr = cmd.ExecuteReader();

                DAOTipoUsuario gestorTipoUsuario = new DAOTipoUsuario();

                while (dr.Read())
                {
                    usuario             = new Usuario();
                    usuario.idUsuario   = Int32.Parse(dr["idUsuario"].ToString());
                    usuario.nombre      = dr["nombre"].ToString();
                    usuario.email       = dr["email"].ToString();
                    usuario.contrasenia = dr["contrasenia"].ToString();

                    if (dr["esActivo"].ToString().Equals("0"))
                    {
                        usuario.esActivo = false;
                    }
                    else
                    {
                        usuario.esActivo = true;
                    }

                    usuario.codigo      = dr["codigo"].ToString();
                    usuario.tipoUsuario = gestorTipoUsuario.obtenerTipoUsuarioPorId(Int32.Parse(dr["idTipoUsuario"].ToString()));
                }
                return(usuario);
            }
            catch (Exception ex)
            {
                throw new Exception("Error al intentar recuperar el usuario: " + ex.Message);
            }
            finally
            {
                if (con != null && con.State == ConnectionState.Open)
                {
                    con.Close();
                }
            }
        }
        /// <summary>
        /// Busca un Usuario con por un email determinado en la base de datos.
        /// autor: Paula Pedrosa y Flor
        /// </summary>
        /// <param name="idUsuario"> Email del Usuario que se quiere buscar </param>
        /// <returns>Un objeto Usuario, o null si no encuentra el Usuario.</returns>
        public Usuario obtenerUsuarioPorEmail(string email)
        {
            SqlConnection con = new SqlConnection(cadenaDeConexion);
            SqlCommand    cmd = new SqlCommand();


            Usuario respuesta = null;

            try
            {
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                    cmd.Connection = con;
                }

                string sql = @"SELECT *
                                FROM Usuarios
                                WHERE email = @email";
                cmd.Parameters.Clear();
                cmd.Parameters.AddWithValue("@email", email);
                cmd.CommandText = sql;
                SqlDataReader dr = cmd.ExecuteReader();

                DAOTipoUsuario gestorTipoUsuario = new DAOTipoUsuario();

                while (dr.Read())
                {
                    respuesta = new Usuario()
                    {
                        idUsuario   = Int32.Parse(dr["idUsuario"].ToString()),
                        nombre      = dr["nombre"].ToString(),
                        email       = dr["email"].ToString(),
                        codigo      = dr["codigo"].ToString(),
                        esActivo    = bool.Parse(dr["esActivo"].ToString()),
                        tipoUsuario = gestorTipoUsuario.obtenerTipoUsuarioPorId(Int32.Parse(dr["idTipoUsuario"].ToString()))
                    };
                }
                return(respuesta);
            }
            catch (Exception ex)
            {
                throw new Exception("Error al intentar recuperar el campeonato: " + ex.Message);
            }
            finally
            {
                if (con != null && con.State == ConnectionState.Open)
                {
                    con.Close();
                }
            }
        }
        /// <summary>
        /// Obtiene el usuario con ese mail y contraseña
        /// </summary>
        /// <parameters>email y contrasenia</parameters>
        /// <returns>Usuario</returns>
        public Usuario obtenerUsuarioPorEmailyContrasenia(string email, string contrasenia)
        {
            SqlConnection con = new SqlConnection(cadenaDeConexion);
            SqlCommand    cmd = new SqlCommand();
            SqlDataReader dr;
            Usuario       usuario = null;

            try
            {
                DAOTipoUsuario gestorTipoUsuario = new DAOTipoUsuario();
                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                    cmd.Connection = con;
                }
                string sql = @"SELECT * 
                             FROM Usuarios
                             WHERE email = @email AND contrasenia=@contrasenia";
                cmd.Parameters.Clear();
                cmd.Parameters.Add(new SqlParameter("@email", email));
                cmd.Parameters.Add(new SqlParameter("@contrasenia", contrasenia));
                cmd.CommandText = sql;
                dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    usuario = new Usuario()
                    {
                        nombre      = dr["nombre"].ToString(),
                        email       = dr["email"].ToString(),
                        idUsuario   = dr.GetInt32(dr.GetOrdinal("idUsuario")),
                        tipoUsuario = gestorTipoUsuario.obtenerTipoUsuarioPorId(Int32.Parse(dr["idTipoUsuario"].ToString())),
                        esActivo    = bool.Parse(dr["esActivo"].ToString())
                    };
                }
                return(usuario);
            }
            catch (Exception ex)
            {
                throw new Exception("Ocurrio un error al obtener el usuario" + ex.Message);
            }
            finally
            {
                if (con != null && con.State == ConnectionState.Open)
                {
                    con.Close();
                }
            }
        }