Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        /// <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);
            }
        }
Пример #4
0
        /// <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)
                });
            }
        }
Пример #5
0
        /// <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)
                });
            }
        }
Пример #6
0
        /// <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);
        }
Пример #7
0
        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();
        }
Пример #8
0
        /// <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);
        }
Пример #9
0
        /// <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)
                });
            }
        }
Пример #10
0
        /// <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);
        }
Пример #11
0
        /// <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);
            }
        }