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); } } }
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); } } }