using System;\r
+using System.IO;\r
+using System.Configuration;\r
+using Dominio.Autorizaciones;\r
+\r
\r
namespace Reportes\r
{\r
/// <summary>\r
/// Clase que contiene la funcionalidad para generar y enviar notificaciones\r
/// </summary>\r
- public class NotificacionesAdmin\r
+ public sealed class NotificacionesAdmin\r
{\r
#region Constructores\r
\r
- public NotificacionesAdmin()\r
+ private NotificacionesAdmin()\r
+ {\r
+ }\r
+\r
+ private static NotificacionesAdmin _instancia = new NotificacionesAdmin();\r
+ public static NotificacionesAdmin Instancia\r
{\r
+ get { return NotificacionesAdmin._instancia; }\r
}\r
\r
#endregion Constructores\r
\r
#region Métodos Públicos\r
\r
- public void EnviarAlPrestador( NotificacionPrestador.Tipo tipoNotif, InfoPrestacionesReport ip )\r
+ public void EnviarAlPrestador( Prestador p, NotificacionPrestador.Tipo tipoNotif, InfoPrestacionesReport ip )\r
{\r
+ string currentDir = Directory.GetCurrentDirectory();\r
+ \r
+ string dirMails = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioMails"] );\r
+ if ( ! Directory.Exists(dirMails) )\r
+ {\r
+ Directory.CreateDirectory( dirMails );\r
+ }\r
+\r
+ string pathName = Path.Combine( dirMails, "prestadores.txt" );\r
+ string subject = string.Empty;\r
+ string extra = string.Empty;\r
\r
+ switch ( tipoNotif )\r
+ {\r
+ case NotificacionPrestador.Tipo.ProcesoExitoso:\r
+ subject = "OK " + ip.NombreArchivo;\r
+ break;\r
+ case NotificacionPrestador.Tipo.InfoNoRecibida:\r
+ subject = "NORECIBIDO " + DateTime.Now.ToString("yyyy-MM-dd");\r
+ break;\r
+ case NotificacionPrestador.Tipo.ErrorGrave:\r
+ subject = "ERROR " + ip.NombreArchivo;\r
+ if ( ip.ErroresValidacion.Count == 0 ) \r
+ extra = @"--> El numero de Cuit informado en el archivo no se corresponde con el del Prestador";\r
+ else\r
+ {\r
+ foreach ( string s in ip.ErroresValidacion )\r
+ {\r
+ extra += ( @"--> " + s + System.Environment.NewLine );\r
+ }\r
+ }\r
+ break;\r
+ }\r
+\r
+ this.EscribirArchivo( pathName, subject, "Prestador: " + p.Cuit, extra );\r
}\r
\r
- public void EnviarAPagos( string titulo, string contenido )\r
+ public void EnviarAPagos( string mensaje )\r
{\r
+ string currentDir = Directory.GetCurrentDirectory();\r
+ \r
+ string dirMails = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioMails"] );\r
+ if ( ! Directory.Exists(dirMails) )\r
+ {\r
+ Directory.CreateDirectory( dirMails );\r
+ }\r
\r
+ string pathName = Path.Combine( dirMails, "pagos.txt" );\r
+ string subject = mensaje;\r
+ \r
+ this.EscribirArchivo( pathName, subject, string.Empty, string.Empty );\r
}\r
\r
#endregion Métodos Públicos\r
+\r
+ #region Métodos privados\r
+\r
+ private void EscribirArchivo( string pathName, string subject, string titulo, string extra )\r
+ {\r
+ StreamWriter w = null;\r
+ if ( File.Exists(pathName) )\r
+ w = File.AppendText( pathName );\r
+ else\r
+ w = File.CreateText( pathName );\r
+\r
+ w.WriteLine( @"*** " + titulo + "**************************************************" );\r
+ w.WriteLine( @"*** " + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + " ******************************************************" );\r
+ w.WriteLine( @"******************************************************************************" );\r
+ w.WriteLine( @"Subject: " + subject );\r
+ w.WriteLine();\r
+ if ( extra.Trim() != string.Empty )\r
+ {\r
+ w.WriteLine( "Detalle: " );\r
+ w.WriteLine(extra);\r
+ w.WriteLine();\r
+ }\r
+ w.WriteLine( @"------------------------------------------------------------------------------" );\r
+ w.WriteLine();\r
+\r
+ w.Close();\r
+ }\r
+\r
+ #endregion Métodos privados\r
}\r
}\r
+\r