3 using System.Configuration;
\r
4 using Dominio.Autorizaciones;
\r
10 /// Clase que contiene la funcionalidad para generar y enviar notificaciones
\r
12 public sealed class NotificacionesAdmin
\r
14 #region Constructores
\r
16 private NotificacionesAdmin()
\r
20 private static NotificacionesAdmin _instancia = new NotificacionesAdmin();
\r
21 public static NotificacionesAdmin Instancia
\r
23 get { return NotificacionesAdmin._instancia; }
\r
26 #endregion Constructores
\r
28 #region Métodos Públicos
\r
30 public void EnviarAlPrestador( Prestador p, NotificacionPrestador.Tipo tipoNotif, InfoPrestacionesReport ip )
\r
32 string currentDir = Directory.GetCurrentDirectory();
\r
34 string dirMails = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioMails"] );
\r
35 if ( ! Directory.Exists(dirMails) )
\r
37 Directory.CreateDirectory( dirMails );
\r
40 string pathName = Path.Combine( dirMails, "prestadores.txt" );
\r
41 string subject = string.Empty;
\r
42 string extra = string.Empty;
\r
44 switch ( tipoNotif )
\r
46 case NotificacionPrestador.Tipo.ProcesoExitoso:
\r
47 subject = "OK " + ip.NombreArchivo;
\r
49 case NotificacionPrestador.Tipo.InfoNoRecibida:
\r
50 subject = "NORECIBIDO " + DateTime.Now.ToString("yyyy-MM-dd");
\r
52 case NotificacionPrestador.Tipo.ErrorGrave:
\r
53 subject = "ERROR " + ip.NombreArchivo;
\r
54 if ( ip.ErroresValidacion.Count == 0 )
\r
55 extra = @"--> El numero de Cuit informado en el archivo no se corresponde con el del Prestador";
\r
58 foreach ( string s in ip.ErroresValidacion )
\r
60 extra += ( @"--> " + s + System.Environment.NewLine );
\r
66 this.EscribirArchivo( pathName, subject, "Prestador: " + p.Cuit, extra );
\r
69 public void EnviarAPagos( string mensaje )
\r
71 string currentDir = Directory.GetCurrentDirectory();
\r
73 string dirMails = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioMails"] );
\r
74 if ( ! Directory.Exists(dirMails) )
\r
76 Directory.CreateDirectory( dirMails );
\r
79 string pathName = Path.Combine( dirMails, "pagos.txt" );
\r
80 string subject = mensaje;
\r
82 this.EscribirArchivo( pathName, subject, string.Empty, string.Empty );
\r
85 #endregion Métodos Públicos
\r
87 #region Métodos privados
\r
89 private void EscribirArchivo( string pathName, string subject, string titulo, string extra )
\r
91 StreamWriter w = null;
\r
92 if ( File.Exists(pathName) )
\r
93 w = File.AppendText( pathName );
\r
95 w = File.CreateText( pathName );
\r
97 w.WriteLine( @"*** " + titulo + "**************************************************" );
\r
98 w.WriteLine( @"*** " + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + " ******************************************************" );
\r
99 w.WriteLine( @"******************************************************************************" );
\r
100 w.WriteLine( @"Subject: " + subject );
\r
102 if ( extra.Trim() != string.Empty )
\r
104 w.WriteLine( "Detalle: " );
\r
105 w.WriteLine(extra);
\r
108 w.WriteLine( @"------------------------------------------------------------------------------" );
\r
114 #endregion Métodos privados
\r