/// <summary> /// Modifica una Casilla de correo. El campo Contraseña es opcional y puede dejarse vacio para no modificarla /// </summary> /// <param name="pCasilla"></param> public bool ModificarCasilla(CasillaCorreo pCasilla) { DAOFactory factory = DAOFactory.Instancia(); try { factory.IniciarConexion(); ICasillaDAO _casillaDAO = factory.casillaCorreoDAO; _casillaDAO.Modificar(pCasilla, this.IDCuentaLogeado); return(true); } catch (DAOException) { factory.RollBack(); return(false); } catch (Exception e) { factory.RollBack(); MessageBox.Show(e.Message); return(false); } finally { factory.FinalizarConexion(); } }
/// <summary> /// Inserta una nueva Casilla en la base de datos, para el usuario actual /// </summary> /// <param name="pCasilla"></param> /// <param name="pServicio"></param> public bool AgregarCasilla(CasillaCorreo pCasilla, int pServicio) { DAOFactory factory = DAOFactory.Instancia(); try { factory.IniciarConexion(); ICasillaDAO _casillaDAO = factory.casillaCorreoDAO; _casillaDAO.Agregar(pCasilla, pServicio, _idCuentaLogeado); return(true); } catch (DAOException) { factory.RollBack(); return(false); } catch (Npgsql.PostgresException) { factory.RollBack(); MessageBox.Show("La dirección de Correo Electrónico tiene un formato incorrecto"); return(false); } finally { factory.FinalizarConexion(); } }
/// <summary> /// Modifica la dirección y la contraseña de la Casilla de Correo /// </summary> /// <param name="pCasilla">Casilla de correo que se desea modificar</param> /// <param name="pIDUsuario">Id de Usuario</param> public void Modificar(CasillaCorreo pCasilla, int pIDUsuario) { string cmd = String.Empty; if (pCasilla.Contraseña == String.Empty) { cmd = "UPDATE \"CasillaEmail\" SET \"direccionEmail\" = @direccion WHERE nombre = '" + pCasilla.Nombre + "' and usuario = '" + pIDUsuario + "'"; } else { cmd = "UPDATE \"CasillaEmail\" SET \"direccionEmail\" = @direccion, \"contrasenaEmail\" = @contrasena WHERE nombre = '" + pCasilla.Nombre + "' and usuario = '" + pIDUsuario + "'"; } NpgsqlCommand comando = this._conexion.CreateCommand(); comando.CommandText = cmd; comando.Parameters.AddWithValue("@direccion", pCasilla.Direccion); comando.Parameters.AddWithValue("@contrasena", pCasilla.Contraseña); // ExecuteNonQuery = -1 si no se modificaron filas if (comando.ExecuteNonQuery() == -1) { throw new DAOException("No se pudieron actualizar los valores"); } }
/// <summary> /// Agrega una Nueva Casilla de Correo /// </summary> /// <param name="pCasilla">Casilla de Correo</param> /// <param name="pServicio">Servicio de Correo (GMAIL, YAHOO)</param> /// <param name="pUsuario">Número de Usuario</param> public void Agregar(CasillaCorreo pCasilla, int pServicio, int pUsuario) { using (NpgsqlTransaction transaccion = this._conexion.BeginTransaction()) { NpgsqlCommand comando = this._conexion.CreateCommand(); comando.Transaction = transaccion; comando.CommandText = "INSERT INTO \"CasillaEmail\"(nombre,\"contrasenaEmail\",servicio,usuario,\"direccionEmail\") VALUES(@nombre,@contrasenaEmail,@servicio,@usuario,@direccionEmail)"; comando.Parameters.AddWithValue("@nombre", pCasilla.Nombre); comando.Parameters.AddWithValue("@contrasenaEmail", pCasilla.Contraseña); comando.Parameters.AddWithValue("@servicio", pServicio); comando.Parameters.AddWithValue("@usuario", pUsuario); comando.Parameters.AddWithValue("@direccionEmail", pCasilla.Direccion); // ExecuteNonQuery = 1 si se modificó 1 fila en la tabla. if (comando.ExecuteNonQuery() != 1) { //Deshacer la operación transaccion.Rollback(); throw new DAOException("No se pudieron insertar los valores"); } //Confirmar la operación transaccion.Commit(); } }
/// <summary> /// Guardar una casilla de correo /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Button_guardar_Click(object sender, EventArgs e) { if (this.Text == "Agregar Casilla") { string _direccion = String.Concat(this.textBox_direccion.Text, this.label1.Text); CasillaCorreo _casilla = new CasillaCorreo(this.textBox_nombre.Text, _direccion, this.textBox_contraseña.Text); int idServicio = _controlador.ObtenerIdServicio(comboBox_servicio.Text); // éxito if (_controlador.AgregarCasilla(_casilla, idServicio)) { MessageBox.Show("Casilla agregada con éxito", "FlyMail"); this.Close(); } } if (this.Text == "Modificar Casilla") { CasillaCorreo _casilla = new CasillaCorreo(this.comboBox1_nombre.Text, string.Concat(this.textBox_direccion.Text, label1.Text), this.textBox_contraseña.Text); if (this.textBox_contraseña.Text == "Si desea realizar cambios") { _casilla.Contraseña = String.Empty; } // éxito if (_controlador.ModificarCasilla(_casilla)) { MessageBox.Show("Casilla modificada con éxito", "FlyMail"); this.Close(); } } }
/// <summary> /// Almacena la contraseña de una determinada casilla /// </summary> /// <param name="user">Nombre de usuario de casilla de correo</param> /// <param name="pass">Cotraseña de casilla de correo</param> private void AlmacenarPasswordCasilla(string user, string pass) { string dir = _controlador.ObtenerDireccionCasilla(user); CasillaCorreo _casilla = new CasillaCorreo(user, dir, pass); _controlador.ModificarCasilla(_casilla); }