public bool introducirUsuarioEnBBDD(string usuario, string email, string pass, string nombre, string apellidos)
 {
     lock (bloqueo)
     {
         conectar();
         MySqlTransaction Transaccion;
         Transaccion = conexion.BeginTransaction();
         ConsolaDebug.escribirEnConsola("INFO", "Comenzando transacción en BD");
         MySqlCommand cmd = new MySqlCommand();
         cmd.Connection  = conexion;
         cmd.Transaction = Transaccion;
         try
         {
             // Primer insert de la transacción
             string sql = "INSERT INTO usuarios VALUES( null, @user, @email, @pass, @name, @apell )";
             cmd.Parameters.AddWithValue("@user", usuario);
             cmd.Parameters.AddWithValue("@email", email);
             cmd.Parameters.AddWithValue("@pass", pass);
             cmd.Parameters.AddWithValue("@name", nombre);
             cmd.Parameters.AddWithValue("@apell", apellidos);
             cmd.CommandText = sql;
             cmd.ExecuteNonQuery();
             ConsolaDebug.escribirEnConsola("INFO", "Insert en usuarios ejecutado satisfactoriamente");
             // Segundo insert de la transacción
             sql             = "INSERT INTO credenciales VALUES( (SELECT Id FROM usuarios WHERE usuario = @user), 'token', 'normal' )";
             cmd.CommandText = sql;
             cmd.ExecuteNonQuery();
             Transaccion.Commit();
             ConsolaDebug.escribirEnConsola("INFO", "Insert en credenciales ejecutado satisfactoriamente");
             return(true);
         }
         catch (Exception e)
         {
             try
             {
                 ConsolaDebug.escribirEnConsola("WARNING", "Problema en transacción, comenzando ROLLBACK");
                 Transaccion.Rollback();
                 ConsolaDebug.escribirEnConsola("INFO", "ROLLBACK ejecutado satisfactoriamente");
             }
             catch (MySqlException ex)
             {
                 ConsolaDebug.escribirEnConsola("WARNING", "Problema en ROLLBACK");
                 if (Transaccion.Connection != null)
                 {
                     ConsolaDebug.escribirEnConsola("ERROR", "Excepción lanzada: {0}", ex.Message);
                 }
             }
             ConsolaDebug.escribirEnConsola("WARNING", "No se ha insertado nada en la BD");
             ConsolaDebug.escribirEnConsola("ERROR", "Excepción lanzada: {0}", e.Message);
             return(false);
         }
         finally
         {
             conexion.Close();
         }
     }
 }
 public bool borrarUsuario(int id, int newUploader)
 {
     lock (bloqueo)
     {
         conectar();
         MySqlTransaction Transaccion;
         Transaccion = conexion.BeginTransaction();
         ConsolaDebug.escribirEnConsola("INFO", "Comenzando transacción de borrado en BD enlaces...");
         MySqlCommand cmd = new MySqlCommand();
         cmd.Connection  = conexion;
         cmd.Transaction = Transaccion;
         try
         {
             // Primer update de la transacción
             string sql = "UPDATE enlaces SET uploader = @newUploader WHERE uploader = @id";
             cmd.Parameters.AddWithValue("@newUploader", newUploader);
             cmd.Parameters.AddWithValue("@id", id);
             cmd.CommandText = sql;
             cmd.ExecuteNonQuery();
             ConsolaDebug.escribirEnConsola("INFO", "Update en BD ENLACES tabla enlaces se ha cambiado el uploader al usuario admin satisfactoriamente");
             // Segundo delete de la transacción
             sql             = "DELETE FROM usuarios WHERE id = @id";
             cmd.CommandText = sql;
             cmd.ExecuteNonQuery();
             Transaccion.Commit();
             ConsolaDebug.escribirEnConsola("INFO", "Delete en BD ENLACES tabla ususarios ejecutado satisfactoriamente");
             return(true);
         }
         catch (Exception e)
         {
             try
             {
                 ConsolaDebug.escribirEnConsola("WARNING", "Problema en transacción, comenzando ROLLBACK");
                 Transaccion.Rollback();
                 ConsolaDebug.escribirEnConsola("INFO", "ROLLBACK ejecutado satisfactoriamente");
             }
             catch (MySqlException ex)
             {
                 ConsolaDebug.escribirEnConsola("WARNING", "Problema en ROLLBACK");
                 if (Transaccion.Connection != null)
                 {
                     ConsolaDebug.escribirEnConsola("ERROR", "Excepción lanzada: {0}", ex.Message);
                 }
             }
             ConsolaDebug.escribirEnConsola("WARNING", "No se ha borrado nada en la BD");
             ConsolaDebug.escribirEnConsola("ERROR", "Excepción lanzada: {0}", e.Message);
             return(false);
         }
         finally
         {
             conexion.Close();
         }
     }
 }
        public bool introducirNuevoEnlace(string usuario, string titulo, string imagen, string descripcion, string tipo, string enlace, string tema, string rango)
        {
            lock (bloqueo)
            {
                conectar();
                MySqlCommand cmd = new MySqlCommand();

                string sql = "INSERT INTO enlaces VALUES( null, @enlace, @titulo, @descripcion, 50, @imagen, @tipo, (SELECT Id FROM temas WHERE Nombre = @tema), (SELECT Id FROM usuarios WHERE Nombre = @user), @rango )"; // Cambiar a 0 el ultimo valor!!!!
                cmd.Parameters.AddWithValue("@enlace", enlace);
                cmd.Parameters.AddWithValue("@titulo", titulo);
                cmd.Parameters.AddWithValue("@imagen", imagen);
                cmd.Parameters.AddWithValue("@descripcion", descripcion);
                cmd.Parameters.AddWithValue("@tipo", tipo);
                cmd.Parameters.AddWithValue("@tema", tema);
                cmd.Parameters.AddWithValue("@user", usuario);
                if (rango.Equals("admin")) // Si es admin el link se sube ya en activo
                {
                    cmd.Parameters.AddWithValue("@rango", 1);
                }
                else
                {
                    cmd.Parameters.AddWithValue("@rango", 0);
                }
                cmd.CommandText = sql;
                cmd.Connection  = conexion;
                // Exception: MySql.Data.MySqlClient.MySqlException (0x80004005): Duplicate entry 'abc' for key 'Link'
                try
                {
                    if (cmd.ExecuteNonQuery() == 1) // El enlace se ha guardado
                    {
                        conexion.Close();
                        return(true);
                    }
                    else
                    {
                        conexion.Close();
                        return(false);
                    }
                }
                catch (MySqlException e) // Si el enlace esta repetido se envia false
                {
                    ConsolaDebug.escribirEnConsola("WARNING", "Enlace duplicado en la base de datos, el nuevo no se guardará");
                    conexion.Close();
                    return(false);
                }
            }
        }
Exemple #4
0
        private static bool enviarEmail(string email, string asunto, string cuerpo)
        {
            var          fromAddress  = new MailAddress("*****@*****.**", "DAMnificus Contacto");
            const string fromPassword = "******";
            var          toAddress    = new MailAddress(email);
            var          smtp         = new SmtpClient
            {
                UseDefaultCredentials = false,
                Host           = "smtp.gmail.com",
                Port           = 587,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                Credentials    = new NetworkCredential(fromAddress.Address, fromPassword),
                EnableSsl      = true,
                Timeout        = 20000
            };

            using (var message = new MailMessage(fromAddress, toAddress)
            {
                Subject = asunto,
                Body = cuerpo,
                IsBodyHtml = true
            })
            {
                try
                {
                    ConsolaDebug.escribirEnConsola("INFO", "Comienzo del envio del email a traves de SSL...");
                    smtp.Send(message);
                    ConsolaDebug.escribirEnConsola("INFO", "El email se ha enviado satisfactoriamente!");
                    return(true);
                }
                catch (Exception e)
                {
                    ConsolaDebug.escribirEnConsola("WARNING", "Problema al enviar el email con error:");
                    ConsolaDebug.escribirEnConsola("ERROR", e.Message);
                    return(false);
                }
            }
        }