/// <summary> /// Método EnviarEmail. /// Permite enviar un email desde de una cuenta de correo específica. /// </summary> /// <param name="pEmail">Email que se guardará en la base de datos</param> /// <param name="pCuenta">Cuenta desde la cual enviamos el mail</param> /// <param name="pMensaje">Objeto tipo MailMessage para armar el mensaje a enviar</param> public void EnviarEmail(EmailDTO pEmail, CuentaDTO pCuenta, MailMessage pMensaje) { try { iFactory = DAOFactory.Instancia(); iFactory.IniciarConexion(); iFactory.ComenzarTransaccion(); FactoryServicios.Instancia.Servicio(pCuenta.Servicio).EnviarCorreo(pCuenta, pMensaje); if (pEmail.IDMensaje == null) { pEmail.IDMensaje = ""; } if (pEmail.Leido == null) { pEmail.Leido = "Leído"; } iFactory.MailDAO().Insertar(pEmail); iFactory.Commit(); } catch (Exception ex) { iFactory.RollBack(); throw new Exception(ex.Message); } finally { iFactory.FinalizarConexion(); } }
/// <summary> /// Método CrearCuenta. /// Inserta una nueva cuenta en la base de datos intentando realizar la conexión con la misma. /// En caso contrario, realiza un rollback y por último una vez realizada la transacción /// cierra la conexión. /// </summary> /// <param name="pCuenta">Cuenta a insertar</param> public void CrearCuenta(CuentaDTO pCuenta) { try { iFactory = DAOFactory.Instancia(); iFactory.IniciarConexion(); iFactory.ComenzarTransaccion(); iFactory.CuentaDAO().Insertar(pCuenta); iFactory.Commit(); } catch (Exception ex) { iFactory.RollBack(); throw new Exception(ex.Message); } finally { iFactory.FinalizarConexion(); } }
/// <summary> /// Metodo para dar de alta una cuenta de correo. /// </summary> /// <param name="pCuenta">Clase DTO con los datos de la cuenta a dar de alta.</param> public void CrearCuenta(CuentaDTO pCuenta) { try { factory = DAOFactory.Instancia; factory.IniciarConexion(); factory.ComenzarTransaccion(); factory.CuentaDAO.AgregarCuenta(pCuenta); factory.Commit(); } catch (Exception exception) { factory.RollBack(); //Se relanza la excepción porque en este punto no se puede tratar throw exception; } finally { // Haya o no un error, se cierra la transacción. factory.FinalizarConexion(); } }
/// <summary> /// Método GuardarCorreo. /// El método permite guardar los emails en la base de datos y persistirlos. /// </summary> /// <param name="pEmail">Email que vamos a persistir en la base de datos</param> public void GuardarCorreo(EmailDTO pEmail) { try { iFactory = DAOFactory.Instancia(); iFactory.IniciarConexion(); iFactory.ComenzarTransaccion(); iFactory.MailDAO().Insertar(pEmail); iFactory.Commit(); } catch (Exception ex) { iFactory.RollBack(); throw new Exception(ex.Message); } finally { iFactory.FinalizarConexion(); } }
/// <summary> /// Método MarcarLeido. /// Permite marcar como leído un mail. /// </summary> /// <param name="pIDMail">ID del mail que se marcará como leído.</param> public void MarcarLeido(int pIDMail) { try { iFactory = DAOFactory.Instancia(); iFactory.IniciarConexion(); iFactory.ComenzarTransaccion(); iFactory.MailDAO().MarcarLeido(pIDMail); iFactory.Commit(); } catch (Exception Ex) { iFactory.RollBack(); throw new Exception(Ex.Message); } finally { iFactory.FinalizarConexion(); } }
/// <summary> /// Método ExisteCorreo. /// El método controla si existen o no los correos en la base de datos. /// </summary> /// <param name="pEmail">Email que se verifica si existe o no en la base de datos</param> /// <returns>TRUE en caso de que exista. FALSE en caso contrario</returns> public bool ExisteCorreo(EmailDTO pEmail) { bool iEncontrado = false; try { iFactory = DAOFactory.Instancia(); iFactory.IniciarConexion(); iFactory.ComenzarTransaccion(); iEncontrado = iFactory.MailDAO().ExisteCorreo(pEmail); iFactory.Commit(); return iEncontrado; } catch (Exception Ex) { iFactory.RollBack(); throw new Exception(Ex.Message); } finally { iFactory.FinalizarConexion(); } }
/// <summary> /// Método ReactivarCuenta. /// Permite reactivar una cuenta que se ha marcado como inactiva. /// </summary> /// <param name="pNombreCuenta">Nombre de la cuenta que deseamos reactivar</param> public void ReactivarCuenta(string pNombreCuenta) { try { iFactory = DAOFactory.Instancia(); iFactory.IniciarConexion(); iFactory.ComenzarTransaccion(); iFactory.CuentaDAO().ReactivarCuenta(pNombreCuenta); iFactory.Commit(); } catch (Exception ex) { iFactory.RollBack(); throw new Exception(ex.Message); } finally { iFactory.FinalizarConexion(); } }
/// <summary> /// Método ModificarCuenta. /// Mediante el id de la cuenta a modificar, se busca en la base de datos y el usuario /// tiene la posibilidad de modificar los datos que desee. Luego se modifica la cuenta especificada. /// </summary> /// <param name="pIdCuenta">Id de la cuenta a modificar</param> /// <param name="pCuentaAModificar">Objeto CuentaDTO que tendrá cargados los datos a modificar en la BD</param> public void ModificarCuenta(int pIdCuenta, CuentaDTO pCuentaAModificar) { try { iFactory = DAOFactory.Instancia(); iFactory.IniciarConexion(); iFactory.ComenzarTransaccion(); iFactory.CuentaDAO().Modificar(pIdCuenta, pCuentaAModificar); iFactory.Commit(); } catch (Exception ex) { iFactory.RollBack(); throw new Exception(ex.Message); } finally { iFactory.FinalizarConexion(); } }
/// <summary> /// Método para modificar un correo. /// </summary> /// <param name="pCorreo">Objeto DTO con los datos del correo a modificar.</param> public void ModificarCorreo(CorreoDTO pCorreo) { try { factory = DAOFactory.Instancia; factory.IniciarConexion(); factory.ComenzarTransaccion(); factory.CorreoDAO.ModificarCorreo(pCorreo); factory.Commit(); } catch (Exception e) { factory.RollBack(); //Se relanza la excepción porque en este punto no se puede tratar throw e; } finally { // Haya o no un error, se cierra la transacción. factory.FinalizarConexion(); } }
/// <summary> /// Metodo para determinar si un correo ya existe en la base de datos. /// </summary> /// <param name="pCorreo">Correo a buscar en la base de datos.</param> /// <returns>False si el correo no existe en la base, true de lo contrario.</returns> public bool Existe(CorreoDTO pCorreo) { bool encontrado = false; try { factory = DAOFactory.Instancia; factory.IniciarConexion(); factory.ComenzarTransaccion(); encontrado = factory.CorreoDAO.Existe(pCorreo); factory.Commit(); return encontrado; } catch (Exception exception) { factory.RollBack(); //Se relanza la excepción porque en este punto no se puede tratar throw exception; } finally { // Haya o no un error, se cierra la transacción. factory.FinalizarConexion(); } }
/// <summary> /// Metodo para completar la información de una cuenta de la Base de Datos. /// </summary> /// <param name="pId">Id de la cuenta a ser completada.</param> /// <returns></returns> public CuentaDTO ObtenerCuenta(int pId) { try { factory = DAOFactory.Instancia; factory.IniciarConexion(); CuentaDTO cuenta = new CuentaDTO(); cuenta.Id = pId; return factory.CuentaDAO.ObtenerCuenta(cuenta); } catch (Exception exception) { factory.RollBack(); //Se relanza la excepción porque en este punto no se puede tratar throw exception; } finally { //Haya o no un error, se cierra la transacción. factory.FinalizarConexion(); } }
/// <summary> /// Método para listar todas las cuentas de correo de la Base de Datos. /// </summary> /// <returns>Una lista con todos las cuentas de la base de datos.</returns> public IList<CuentaDTO> ListarCuentas() { try { factory = DAOFactory.Instancia; factory.IniciarConexion(); //Se devuelven las cuentas return factory.CuentaDAO.ObtenerCuentas(); } catch (Exception exception) { factory.RollBack(); //Se relanza la excepción porque en este punto no se puede tratar throw exception; } finally { //Haya o no un error, se cierra la transacción. factory.FinalizarConexion(); } }