]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blobdiff - demo/src/Reportes/NotificacionesAdmin.cs
Agrego material de estudio.
[z.facultad/75.10/miklolife.git] / demo / src / Reportes / NotificacionesAdmin.cs
index 6c5c7d9a283e87793601fdf3fbb568f3eebcef77..792478cdf5533a66e0195c00d763a3cb7d246230 100644 (file)
 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