/// <summary> /// Inserta informacion en la tabla CuentaEmail /// </summary> /// <param name="pCuentaEmail"></param> /// <returns></returns> public RespuestaCuentaEmail InsertarCuentaEmail(CuentaEmail pCuentaEmail) { int filasAfectadas; RespuestaCuentaEmail respuesta = new RespuestaCuentaEmail(); //STRORE PROCEDURE DEFINITION DbCommand dbCommand = database1.GetStoredProcCommand(defaultSchema + StoredProcedure.InsertarCuentaEmail); //IN PARAMETERS database1.AddInParameter(dbCommand, parameterName(BaseEntidad.idEntidadProperty), DbType.Int64, pCuentaEmail.IdEntidad); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.correoElectronicoProperty), DbType.AnsiString, pCuentaEmail.CorreoElectronico); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.aliasProperty), DbType.AnsiString, pCuentaEmail.Alias); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.servidorProperty), DbType.AnsiString, pCuentaEmail.Servidor); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.puertoProperty), DbType.Int32, pCuentaEmail.Puerto); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.usuarioProperty), DbType.AnsiString, pCuentaEmail.Usuario); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.contrasenaProperty), DbType.AnsiString, pCuentaEmail.Contrasena); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.sslProperty), DbType.Boolean, pCuentaEmail.Ssl); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.credencialesDefectoProperty), DbType.Boolean, pCuentaEmail.CredencialesDefecto); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.cuentaDefectoProperty), DbType.Boolean, pCuentaEmail.CuentaDefecto); database1.AddInParameter(dbCommand, parameterName(BaseEntidad.usrCreacionProperty), DbType.String, pCuentaEmail.UsrCreacion); //OUT PARAMETERS database1.AddOutParameter(dbCommand, parameterName(CuentaEmail.idProperty), DbType.Int32, 32); database1.AddOutParameter(dbCommand, parameterName(BaseEntidad.codErrorProperty), DbType.String, 2); database1.AddOutParameter(dbCommand, parameterName(BaseEntidad.mensajeProperty), DbType.String, 200); //EXECUTE PROCEDURE filasAfectadas = database1.ExecuteNonQuery(dbCommand); //ERROR CODE AND MESSAGE COLLECTOR respuesta.Respuesta = new Respuesta(); respuesta.Respuesta.CodMensaje = DBHelper.ReadNullSafeString(database1.GetParameterValue(dbCommand, parameterName(BaseEntidad.codErrorProperty))); respuesta.Respuesta.Mensaje = DBHelper.ReadNullSafeString(database1.GetParameterValue(dbCommand, parameterName(BaseEntidad.mensajeProperty))); if (respuesta.Respuesta.CodMensaje == Respuesta.CodExitoso) { pCuentaEmail.Id = DBHelper.ReadNullSafeInt(database1.GetParameterValue(dbCommand, parameterName(CuentaEmail.idProperty))); respuesta.Respuesta = new Respuesta(Mensajes.bmCreateCuentaEmail, respuesta.Respuesta.CodMensaje); respuesta.CuentaEmail = pCuentaEmail; } //Registro de Error en bitacora /*if (respuesta.Respuesta.CodMensaje != Respuesta.CodExitoso) * { * RegistrarError(respuesta, MethodBase.GetCurrentMethod().ReflectedType.Name, MethodBase.GetCurrentMethod().Name); * }*/ return(respuesta); }
/// <summary> /// Consulta en la base de datos la tabla CuentaEmail /// </summary> /// <param name="pCuentaEmail"></param> /// <returns></returns> public RespuestaListaCuentaEmail ObtenerCuentaEmail(CuentaEmail pCuentaEmail) { RespuestaListaCuentaEmail respuesta = new RespuestaListaCuentaEmail(); respuesta.ListaCuentaEmail = new List <CuentaEmail>(); //STRORE PROCEDURE DEFINITION DbCommand dbCommand = database1.GetStoredProcCommand(defaultSchema + StoredProcedure.ObtenerCuentaEmail); //IN PARAMETERS database1.AddInParameter(dbCommand, parameterName(CuentaEmail.idProperty), DbType.Int32, pCuentaEmail.Id); database1.AddInParameter(dbCommand, parameterName(BaseEntidad.idEntidadProperty), DbType.Int64, pCuentaEmail.IdEntidad); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.correoElectronicoProperty), DbType.AnsiString, pCuentaEmail.CorreoElectronico); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.aliasProperty), DbType.AnsiString, pCuentaEmail.Alias); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.servidorProperty), DbType.AnsiString, pCuentaEmail.Servidor); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.puertoProperty), DbType.Int32, pCuentaEmail.Puerto); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.usuarioProperty), DbType.AnsiString, pCuentaEmail.Usuario); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.contrasenaProperty), DbType.AnsiString, pCuentaEmail.Contrasena); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.sslProperty), DbType.Boolean, pCuentaEmail.Ssl); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.credencialesDefectoProperty), DbType.Boolean, pCuentaEmail.CredencialesDefecto); database1.AddInParameter(dbCommand, parameterName(CuentaEmail.cuentaDefectoProperty), DbType.Boolean, pCuentaEmail.CuentaDefecto); //OUT PARAMETERS database1.AddOutParameter(dbCommand, parameterName(BaseEntidad.codErrorProperty), DbType.String, 2); database1.AddOutParameter(dbCommand, parameterName(BaseEntidad.mensajeProperty), DbType.String, 200); //EXECUTE PROCEDURE - CONVERT ROWS using (IDataReader Reader = database1.ExecuteReader(dbCommand)) { while (Reader.Read()) { respuesta.ListaCuentaEmail.Add(new CuentaEmail(Reader)); } } //ERROR CODE AND MESSAGE COLLECTOR respuesta.Respuesta = new Respuesta(); respuesta.Respuesta.CodMensaje = DBHelper.ReadNullSafeString(database1.GetParameterValue(dbCommand, parameterName(BaseEntidad.codErrorProperty))); respuesta.Respuesta.Mensaje = DBHelper.ReadNullSafeString(database1.GetParameterValue(dbCommand, parameterName(BaseEntidad.mensajeProperty))); //Registro de Error en bitacora /*if (respuesta.Respuesta.CodMensaje != Respuesta.CodExitoso) * { * RegistrarError(respuesta, MethodBase.GetCurrentMethod().ReflectedType.Name, MethodBase.GetCurrentMethod().Name); * }*/ return(respuesta); }
/// <summary> /// Notificacion Accion /// </summary> /// <param name="pCuentaEmail"></param> /// <param name="pMensajes"></param> /// <returns></returns> private void Notificacion(CuentaEmail pCuentaEmail, string CodigoAlerta) { AlertaLogicaNegocio al = new AlertaLogicaNegocio(); RespuestaAlerta alerta = al.ObtenerAlerta(new AlertaBase() { CodigoAlerta = CodigoAlerta, Activo = true }); if (alerta != null && alerta.Respuesta.CodMensaje == Respuesta.CodExitoso) { //al.EnviarAlerta(alerta.Alerta); } }
/// <summary> /// Metodo que sirve para Eliminar o Desactivar un objeto de tipo CuentaEmail /// </summary> /// <param name="pCuentaEmail"></param> /// <returns></returns> public RespuestaCuentaEmail EliminarCuentaEmail(CuentaEmail pCuentaEmail) { var respuesta = new RespuestaCuentaEmail(); try { string CodigoAlerta = "CuentaEmailDelete"; List <string> mensajes = new List <string>(); RespuestaSesion respS = sesion.ObtenerSesion(new Sesion() { Token = pCuentaEmail.UsrtokensAuthenticate }); if (respS.Respuesta.CodMensaje == Respuesta.CodExitoso) { pCuentaEmail.IdEntidad = respS.Sesion.IdEntidad; //VALIDACION: Entidad no puede venir vacio if (ValidacionesEliminar(pCuentaEmail, ref mensajes)) { //CONSULTA A ACCESO A DATOS respuesta = dal.EliminarCuentaEmail(pCuentaEmail); //LnBitacoraAuditoria.RegistrarBitacora(respuesta, pCuentaEmail, ACCIONES.BORRAR); Notificacion(pCuentaEmail, CodigoAlerta); } else { //NO COMPLETA LA VALIDACION, SE ENVIAN DE REGRESO LOS MENSAJES return(new RespuestaCuentaEmail { Respuesta = new Respuesta(Respuesta.CodNoValido), CuentaEmail = respuesta.CuentaEmail }); } return(respuesta); } else { return new RespuestaCuentaEmail { Respuesta = respS.Respuesta, CuentaEmail = new CuentaEmail() } }; } catch (Exception ex) { ControlExcepciones.ControlExcepciones.ManejoExcepciones(ex, pCuentaEmail); return(new RespuestaCuentaEmail { Respuesta = new Respuesta(TipoRespuesta.Excepcion, ex.Message, Respuesta.CodNoValido) }); } }
/// <summary> /// Metodo para insertar un valor de tipo CuentaEmail /// </summary> /// <param name="pCuentaEmail"></param> /// <returns></returns> public RespuestaCuentaEmail InsertarCuentaEmail(CuentaEmail pCuentaEmail) { var respuesta = new RespuestaCuentaEmail(); try { string CodigoAlerta = "CuentaEmailCreate"; List <string> mensajes = new List <string>(); RespuestaSesion respS = sesion.ObtenerSesion(new Sesion() { Token = pCuentaEmail.UsrtokensAuthenticate }); if (respS.Respuesta.CodMensaje == Respuesta.CodExitoso) { pCuentaEmail.UsrCreacion = respS.Sesion.CodigoUsuario; pCuentaEmail.IdEntidad = respS.Sesion.IdEntidad; //EJECUTAR: se guarda la entidad if (ValidacionesCreacion(pCuentaEmail, ref mensajes)) { respuesta = dal.InsertarCuentaEmail(pCuentaEmail); //LnBitacoraAuditoria.RegistrarBitacora(respuesta, pCuentaEmail, ACCIONES.AGREGAR); Notificacion(pCuentaEmail, CodigoAlerta); } else { //NO COMPLETA LA VALIDACION, SE ENVIAN DE REGRESO LOS MENSAJES return(new RespuestaCuentaEmail { Respuesta = new Respuesta(Respuesta.CodNoValido), CuentaEmail = respuesta.CuentaEmail }); } return(respuesta); } else { return new RespuestaCuentaEmail { Respuesta = respS.Respuesta, CuentaEmail = new CuentaEmail() } }; } catch (Exception ex) { ControlExcepciones.ControlExcepciones.ManejoExcepciones(ex, pCuentaEmail); return(new RespuestaCuentaEmail { Respuesta = new Respuesta(TipoRespuesta.Excepcion, ex.Message, Respuesta.CodNoValido) }); } }
/// <summary> /// Validacion para entidad al Eliminar /// </summary> /// <param name="pCuentaEmail"></param> /// <param name="pMensajes"></param> /// <returns></returns> private Boolean ValidacionesEliminar(CuentaEmail pCuentaEmail, ref List <String> pMensajes) { Boolean isValid = true; if (pCuentaEmail != null) { if (pCuentaEmail.Id == 0) { pMensajes.Add(string.Format(Mensajes.vmRequeridoConsecutivoEntidad, "CuentaEmail")); isValid = false; } } else { isValid = false; } return(isValid); }
static void Main(string[] args) { #region parametros Requeridos ParametersMessage parametersMessage = new ParametersMessage() { Host = "http://localhost/", UserRabbitMQ = "USRENVCORREO", Password = "******", Channel = "notificacion", Key = "email.#" }; CuentaEmail cuentaEmail = new CuentaEmail() { CuentaId = "GENERACION_DEUDA_SEPP", EnviaMail = "*****@*****.**", }; ComplementEmail complementEmail = new ComplementEmail() { Asunto = "Prueba de plantilla 2020", Para = new List <string>() { "*****@*****.**", }, CopiaMail = new List <string>() { "*****@*****.**" } }; #endregion IMessage imessage = new Message(parametersMessage, cuentaEmail); // imessage.AdjuntoArchivo(doc); // imessage.ParametrosDinamicos(ningunRegistro); var resp = imessage.Correo(complementEmail).Result; Console.WriteLine(resp); Console.Read(); }
/// <summary> /// Validacion para Insertar Entidad /// </summary> /// <param name="pCuentaEmail"></param> /// <param name="pMensajes"></param> /// <returns></returns> private Boolean ValidacionesCreacion(CuentaEmail pCuentaEmail, ref List <String> pMensajes) { Boolean isValid = true; if (pCuentaEmail != null) { isValid = Utilidades.Util.EntidadValida(pCuentaEmail, ref pMensajes); if (String.IsNullOrEmpty(pCuentaEmail.UsrCreacion)) { pMensajes.Add(MensajesValidaciones.Req_UsuarioCreacion); isValid = false; } } else { isValid = false; } return(isValid); }
/// <summary> /// Metodo que sirve para Obtener la lista de tipo CuentaEmail /// </summary> /// <param name="pCuentaEmail">Filtro de tipo CuentaEmail</param> /// <returns></returns> public RespuestaCuentaEmail ObtenerCuentaEmail(CuentaEmail pCuentaEmail) { var respuesta = new RespuestaCuentaEmail(); try { RespuestaSesion respS = sesion.ObtenerSesion(new Sesion() { Token = pCuentaEmail.UsrtokensAuthenticate }); if (respS.Respuesta.CodMensaje == Respuesta.CodExitoso) { pCuentaEmail.IdEntidad = respS.Sesion.IdEntidad; respuesta.CuentaEmail = dal.ObtenerCuentaEmail(pCuentaEmail).ListaCuentaEmail?[0]; return(respuesta.CuentaEmail != null ? new RespuestaCuentaEmail { Respuesta = new Respuesta(string.Empty, Respuesta.CodExitoso), CuentaEmail = respuesta.CuentaEmail } : new RespuestaCuentaEmail { Respuesta = new Respuesta(Respuestas.GI03, Respuesta.CodExitoso), CuentaEmail = new CuentaEmail() }); } else { return new RespuestaCuentaEmail { Respuesta = respS.Respuesta, CuentaEmail = new CuentaEmail() } }; } catch (Exception ex) { ControlExcepciones.ControlExcepciones.ManejoExcepciones(ex, pCuentaEmail); return(new RespuestaCuentaEmail { Respuesta = new Respuesta(TipoRespuesta.Excepcion, ex.Message, Respuesta.CodNoValido) }); } }
/// <summary> /// Metodo que se encarga de eliminar o desactivar un registro de la tabla CuentaEmail /// </summary> /// <param name="pCuentaEmail"></param> /// <returns></returns> public RespuestaCuentaEmail EliminarCuentaEmail(CuentaEmail pCuentaEmail) { int filasAfectadas; RespuestaCuentaEmail respuesta = new RespuestaCuentaEmail(); //STRORE PROCEDURE DEFINITION DbCommand dbCommand = database1.GetStoredProcCommand(defaultSchema + StoredProcedure.EliminarCuentaEmail); //IN PARAMETERS database1.AddInParameter(dbCommand, parameterName(CuentaEmail.idProperty), DbType.Int32, pCuentaEmail.Id); //OUT PARAMETERS database1.AddOutParameter(dbCommand, parameterName(BaseEntidad.codErrorProperty), DbType.String, 2); database1.AddOutParameter(dbCommand, parameterName(BaseEntidad.mensajeProperty), DbType.String, 200); filasAfectadas = database1.ExecuteNonQuery(dbCommand); //ERROR CODE AND MESSAGE COLLECTOR respuesta.Respuesta = new Respuesta(); respuesta.Respuesta.CodMensaje = DBHelper.ReadNullSafeString(database1.GetParameterValue(dbCommand, parameterName(BaseEntidad.codErrorProperty))); respuesta.Respuesta.Mensaje = DBHelper.ReadNullSafeString(database1.GetParameterValue(dbCommand, parameterName(BaseEntidad.mensajeProperty))); if (respuesta.Respuesta.CodMensaje == Respuesta.CodExitoso) { respuesta.Respuesta = new Respuesta(Mensajes.bmDeleteCuentaEmail, respuesta.Respuesta.CodMensaje); } //Registro de Error en bitacora /*if (respuesta.Respuesta.CodMensaje != Respuesta.CodExitoso) * { * RegistrarError(respuesta, MethodBase.GetCurrentMethod().ReflectedType.Name, MethodBase.GetCurrentMethod().Name); * }*/ return(respuesta); }
/// <summary> /// Sends an email /// </summary> /// <param name="emailAccount">Email account to use</param> /// <param name="subject">Subject</param> /// <param name="body">Body</param> /// <param name="fromAddress">From address</param> /// <param name="fromName">From display name</param> /// <param name="toAddress">To address</param> /// <param name="toName">To display name</param> /// <param name="replyTo">ReplyTo address</param> /// <param name="replyToName">ReplyTo display name</param> /// <param name="bcc">BCC addresses list</param> /// <param name="cc">CC addresses list</param> /// <param name="attachmentFilePath">Attachment file path</param> /// <param name="attachmentFileName">Attachment file name. If specified, then this file name will be sent to a recipient. Otherwise, "AttachmentFilePath" name will be used.</param> /// <param name="attachedDownloadId">Attachment download ID (another attachedment)</param> /// <param name="headers">Headers</param> public virtual void SendEmail(CuentaEmail emailAccount, string subject, string body, string fromAddress, string fromName, string toAddress, string toName, string replyTo = null, string replyToName = null, IEnumerable <string> bcc = null, IEnumerable <string> cc = null, string attachmentFilePath = null, string attachmentFileName = null, int attachedDownloadId = 0, IDictionary <string, string> headers = null) { var message = new MailMessage(); //from, to, reply to message.From = new MailAddress(fromAddress, fromName); message.To.Add(new MailAddress(toAddress, toName ?? "")); if (!String.IsNullOrEmpty(replyTo)) { message.ReplyToList.Add(new MailAddress(replyTo, replyToName)); } //BCC if (bcc != null) { foreach (var address in bcc.Where(bccValue => !String.IsNullOrWhiteSpace(bccValue))) { message.Bcc.Add(address.Trim()); } } //CC if (cc != null) { foreach (var address in cc.Where(ccValue => !String.IsNullOrWhiteSpace(ccValue))) { message.CC.Add(address.Trim()); } } //content message.Subject = subject; message.Body = body; message.IsBodyHtml = true; //headers if (headers != null) { foreach (var header in headers) { message.Headers.Add(header.Key, header.Value); } } //create the file attachment for this e-mail message if (!String.IsNullOrEmpty(attachmentFilePath) && File.Exists(attachmentFilePath)) { var attachment = new Attachment(attachmentFilePath); attachment.ContentDisposition.CreationDate = File.GetCreationTime(attachmentFilePath); attachment.ContentDisposition.ModificationDate = File.GetLastWriteTime(attachmentFilePath); attachment.ContentDisposition.ReadDate = File.GetLastAccessTime(attachmentFilePath); if (!String.IsNullOrEmpty(attachmentFileName)) { attachment.Name = attachmentFileName; } message.Attachments.Add(attachment); } //another attachment? if (attachedDownloadId > 0) { var download = _downloadService.GetDownloadById(attachedDownloadId); if (download != null) { //we do not support URLs as attachments if (!download.UseDownloadUrl) { string fileName = !String.IsNullOrWhiteSpace(download.Filename) ? download.Filename : download.Id.ToString(); fileName += download.Extension; var ms = new MemoryStream(download.DownloadBinary); var attachment = new Attachment(ms, fileName); //string contentType = !String.IsNullOrWhiteSpace(download.ContentType) ? download.ContentType : "application/octet-stream"; //var attachment = new Attachment(ms, fileName, contentType); attachment.ContentDisposition.CreationDate = DateTime.UtcNow; attachment.ContentDisposition.ModificationDate = DateTime.UtcNow; attachment.ContentDisposition.ReadDate = DateTime.UtcNow; message.Attachments.Add(attachment); } } } //send email using (var smtpClient = new SmtpClient()) { smtpClient.UseDefaultCredentials = emailAccount.CredencialesDefecto; smtpClient.Host = emailAccount.Servidor; smtpClient.Port = emailAccount.Puerto.Value; smtpClient.EnableSsl = emailAccount.Ssl; smtpClient.Credentials = emailAccount.CredencialesDefecto ? CredentialCache.DefaultNetworkCredentials : new NetworkCredential(emailAccount.Usuario, emailAccount.Contrasena); smtpClient.Send(message); } }