/// <summary> /// actualiza un Nuevo Formato de notificacion /// </summary> /// <param name="pNemail"></param> /// <returns></returns> public bool Actualizar(NotificacionEmail pNemail) { bool ID = false; try { NotificacionEmailDA NDA = new NotificacionEmailDA(ConGenral); ID = NDA.Actualizar(pNemail); } catch (Exception ex) { ExceptionNotificacionEmail NotificacionException = new ExceptionNotificacionEmail("El Metodo Actualizar(NotificacionEmail pNemail) ) fallo" + " || " + ex); NotificacionEmail notificacion = new NotificacionEmail("Error en SMEHL", NotificacionException); notificacion.TipoNotificacion = EnumTipoNotificacion.Error; NotificacionEmailService NS = new NotificacionEmailService(ConGenral); NS.EnviarNotificacion(notificacion); } return ID; }
/// <summary> /// agrega un nuevo formato de notificacion /// </summary> /// <param name="pNemail"></param> /// <returns></returns> public int Agregar(NotificacionEmail pNemail) { int ID=0; try { NotificacionEmailDA NDA = new NotificacionEmailDA(ConGenral); ID = NDA.Agregar(pNemail); } catch (Exception ex) { ID = -1; ExceptionNotificacionEmail NotificacionException = new ExceptionNotificacionEmail("El Metodo Agregar(NotificacionEmail pNemail) ) fallo" + " || " + ex); NotificacionEmail notificacion = new NotificacionEmail("Error en SMEHL", NotificacionException); notificacion.TipoNotificacion = EnumTipoNotificacion.Error; NotificacionEmailService NS = new NotificacionEmailService(ConGenral); NS.EnviarNotificacion(notificacion); } return ID; }
/// <summary> /// Trae datos de Servidor SMPT /// </summary> /// <returns></returns> protected SMTPClienteDatos TraerServidorSMPT() { SMTPClienteDatos smtpRegreso = new SMTPClienteDatos(); try { //NotificacionEmailDA NDA = new NotificacionEmailDA(TipoApp); //smtpRegreso = NDA.TraerServidorSMPT(); //ParametrosDA parametros = new ParametrosDA(TipoApp); //List<ParametrosDelSistemaDetalle> listaParametros = parametros.SeleccionarGrupoDeParametros(eGruposDeParametros.FormatosDeNotificaciones, eSubGruposDeParametros.SMTP); //smtpRegreso.Nombre = (from c in listaParametros // where c.Clave.Equals("IP") // select c.Valor).FirstOrDefault().ToString(); //smtpRegreso.Puerto = Convert.ToInt32((from c in listaParametros // where c.Clave.Equals("Puerto") // select c.Valor).FirstOrDefault()); smtpRegreso.Nombre = "relaysmtp.ndc.nna"; smtpRegreso.Puerto = Convert.ToInt32("25"); } catch (Exception ex) { ExceptionNotificacionEmail NotificacionException = new ExceptionNotificacionEmail("El Metodo TraerServidorSMPT fallo" + " || " + ex); NotificacionEmail notificacion = new NotificacionEmail("Error en SMEHL", NotificacionException); NotificacionEmailService NS = new NotificacionEmailService(ConGenral); NS.EnviarNotificacion(notificacion); throw NotificacionException; } return smtpRegreso; }
/// <summary> /// metodo utilizado para traer un formato de notificacion deseado. /// </summary> /// <param name="pIdParametroSistemaDetalle"></param> /// <returns></returns> public NotificacionEmail TraerDatosNotificacion(int pIdParametroSistemaDetalle) { try { NotificacionEmailDA NDA = new NotificacionEmailDA(ConGenral); this.MyNotificacionEmail = NDA.TraerDatosNotificacion(pIdParametroSistemaDetalle); } catch (Exception e) { ExceptionNotificacionEmail NotificacionException = new ExceptionNotificacionEmail("El Metodo TraerDatosNotificacion fallo" + " || " + e); NotificacionEmail notificacion = new NotificacionEmail("Error en SMEHL", NotificacionException); notificacion.TipoNotificacion = EnumTipoNotificacion.Error; NotificacionEmailService NS = new NotificacionEmailService(ConGenral); NS.EnviarNotificacion(notificacion); throw NotificacionException; } return this.MyNotificacionEmail; }
/// <summary> /// Regreasa todos los formatos de notificacion. /// </summary> /// <returns></returns> public List<NotificacionEmail> Seleccionar() { List<NotificacionEmail> MyNotificacion = new List<NotificacionEmail>(); try { NotificacionEmailDA NDA = new NotificacionEmailDA(ConGenral); MyNotificacion = NDA.Seleccionar(); } catch (Exception ex) { ExceptionNotificacionEmail NotificacionException = new ExceptionNotificacionEmail("El Metodo Seleccionar() ) fallo" + " || " + ex); NotificacionEmail notificacion = new NotificacionEmail("Error en SMEHL", NotificacionException); notificacion.TipoNotificacion = EnumTipoNotificacion.Error; NotificacionEmailService NS = new NotificacionEmailService(ConGenral); NS.EnviarNotificacion(notificacion); } return MyNotificacion; }
/// <summary> /// Envia Notificacion. /// </summary> /// <param name="pNemail"></param> /// <returns></returns> public bool EnviarNotificacion(NotificacionEmail pNemail) { MailMessage MyMail = new MailMessage(); switch (pNemail.TipoNotificacion) { case EnumTipoNotificacion.Mensajes: #region Notificacion Mensaje #region From if (string.IsNullOrEmpty(pNemail.CuentaOrigen)) throw new ExceptionNotificacionEmail("No se ingreso Cuenta de origen"); else { MyMail.From = new MailAddress(pNemail.CuentaOrigen.ToString(), pNemail.CuentaOrigen.ToString()); } #endregion #region To if (string.IsNullOrEmpty(pNemail.CuentaDestino)) throw new ExceptionNotificacionEmail("No se ingreso Cuenta de Destino"); else { MyMail.To.Add(new MailAddress(pNemail.CuentaDestino.ToString())); } #endregion #region BCC //MyMail.Bcc.Add(new MailAddress(pNemail.CopiaPara.ToString())); #endregion #region CC if (pNemail.CopiaPara.Count() >= 1 && pNemail.CopiaPara != null) { foreach (string inAdress in pNemail.CopiaPara) { MyMail.CC.Add(new MailAddress(inAdress)); } } #endregion #region Subject if (string.IsNullOrEmpty(pNemail.AsuntoMensaje)) throw new ExceptionNotificacionEmail("No se ingreso El Asunto del Mensaje"); else { MyMail.Subject = pNemail.AsuntoMensaje.ToString(); } #endregion #region Attachments if(pNemail.Adjuntos!=null && pNemail.Adjuntos.Count > 0) { foreach (var iFile in pNemail.Adjuntos) { MyMail.Attachments.Add(iFile); } } if (pNemail.Attachments != null && pNemail.Attachments.Count > 0) { SetAttachments(pNemail.Attachments); } #endregion #region Body if (string.IsNullOrEmpty(pNemail.CuerpoMensaje)) throw new ExceptionNotificacionEmail("No se ingreso el Cuerpo del Mensaje"); else { MyMail.Body = pNemail.CuerpoMensaje; } #endregion #region Deployment // Especifica el formato del cuerpo del mensaje MyMail.IsBodyHtml = true; // establece la prioridad del mensaje MyMail.Priority = pNemail.Prioridad; #endregion SMTPClienteDatos smtpServer = TraerServidorSMPT(); if (string.IsNullOrEmpty(smtpServer.Nombre)) throw new ExceptionNotificacionEmail("No existe registro del Nombre de servidor SMPT"); if (string.IsNullOrEmpty(smtpServer.Puerto.ToString())) throw new ExceptionNotificacionEmail("No existe registro del Puerto de servidor SMPT"); if (!(string.IsNullOrEmpty(smtpServer.Nombre) || string.IsNullOrEmpty(smtpServer.Puerto.ToString()))) { SmtpClient clienteSmtp = new SmtpClient(smtpServer.Nombre, smtpServer.Puerto); try { clienteSmtp.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback); string userState = "envio de notificacion ||" + MyMail.Subject; clienteSmtp.SendAsync(MyMail, userState); enviado = true; } catch (Exception e) { enviado = false; ExceptionNotificacionEmail NotificacionException = new ExceptionNotificacionEmail("El Metodo EnviarNotificacion fallo" + " || ", e); NotificacionEmail notificacion = new NotificacionEmail("Error en DLOG", NotificacionException); notificacion.TipoNotificacion = EnumTipoNotificacion.Error; NotificacionEmailService NS = new NotificacionEmailService(ConGenral); NS.EnviarNotificacion(notificacion); throw NotificacionException; } } #endregion break; #region Error case EnumTipoNotificacion.Error: NotificacionEmail NotificacionError = TraerDatosNotificacionError(pNemail, 1); #region From if (string.IsNullOrEmpty(NotificacionError.CuentaOrigen.ToString())) throw new ExceptionNotificacionEmail("No se ingreso Cuenta de origen"); else { MyMail.From = new MailAddress(NotificacionError.CuentaOrigen.ToString(), NotificacionError.CuentaOrigen.ToString()); } #endregion #region To if (string.IsNullOrEmpty(NotificacionError.CuentaDestino.ToString())) throw new ExceptionNotificacionEmail("No se ingreso Cuenta Destino"); else { string [] lCorreos= NotificacionError.CuentaDestino.ToString().Split(';'); foreach (var icorreo in lCorreos) { MyMail.To.Add(new MailAddress(icorreo)); } } #endregion #region BCC #endregion #region CC if (NotificacionError.CopiaPara.Count() >= 1 && NotificacionError.CopiaPara != null) { foreach (string inAdress in NotificacionError.CopiaPara) { MyMail.CC.Add(new MailAddress(inAdress)); } } #endregion #region Subject if (string.IsNullOrEmpty(NotificacionError.AsuntoMensaje.ToString())) throw new ExceptionNotificacionEmail("No se ingreso Asunto del Mensaje"); else { MyMail.Subject = NotificacionError.AsuntoMensaje.ToString(); } #endregion #region Attachments if (NotificacionError.Attachments != null && NotificacionError.Attachments.Count > 0) { SetAttachments(NotificacionError.Attachments); } #endregion #region Body if (string.IsNullOrEmpty(NotificacionError.CuerpoMensaje.ToString())) throw new ExceptionNotificacionEmail("No se ingreso El Cuerpo del Mensaje"); else { MyMail.Body = NotificacionError.CuerpoMensaje; } #endregion #region Deployment // Especifica el formato del cuerpo del mensaje MyMail.IsBodyHtml = true; // establece la prioridad del mensaje MyMail.Priority = pNemail.Prioridad; #endregion SMTPClienteDatos smtpServer2 = TraerServidorSMPT(); if (string.IsNullOrEmpty(smtpServer2.Nombre)) throw new ExceptionNotificacionEmail("No existe registro del Nombre de servidor SMPT"); if (string.IsNullOrEmpty(smtpServer2.Puerto.ToString())) throw new ExceptionNotificacionEmail("No existe registro del Puerto de servidor SMPT"); if (!(string.IsNullOrEmpty(smtpServer2.Nombre) || string.IsNullOrEmpty(smtpServer2.Puerto.ToString()))) { try { SmtpClient clienteSmtp = new SmtpClient(smtpServer2.Nombre, smtpServer2.Puerto); //envia el correo clienteSmtp.Send(MyMail); enviado = true; } catch (Exception e) { enviado = false; ExceptionNotificacionEmail NotificacionException = new ExceptionNotificacionEmail("El Metodo EnviarNotificacion fallo" + " || ", e); throw NotificacionException; } } break; #endregion default: break; } return enviado; }
/// <summary> /// Elimina un Formato de notificacion /// </summary> /// <param name="pIdObjeto"></param> /// <returns></returns> public bool Eliminar(int pIdObjeto) { bool ID = false; try { NotificacionEmailDA NDA = new NotificacionEmailDA(ConGenral); ID = NDA.Eliminar(pIdObjeto); } catch (Exception ex) { ExceptionNotificacionEmail NotificacionException = new ExceptionNotificacionEmail("El Metodo Eliminar(int pIdObjeto) fallo" + " || " + ex); NotificacionEmail notificacion = new NotificacionEmail("Error en SMEHL", NotificacionException); notificacion.TipoNotificacion = EnumTipoNotificacion.Error; NotificacionEmailService NS = new NotificacionEmailService(ConGenral); NS.EnviarNotificacion(notificacion); } return ID; }