]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - demo/src/Reportes/NotificacionesAdmin.cs
mas fixes y puesta linda
[z.facultad/75.10/miklolife.git] / demo / src / Reportes / NotificacionesAdmin.cs
1 using System;\r
2 using System.IO;\r
3 using System.Configuration;\r
4 using Dominio.Autorizaciones;\r
5 \r
6 \r
7 namespace Reportes\r
8 {\r
9         /// <summary>\r
10         /// Clase que contiene la funcionalidad para generar y enviar notificaciones\r
11         /// </summary>\r
12         public sealed class NotificacionesAdmin\r
13         {\r
14                 #region Constructores\r
15                 \r
16                 private NotificacionesAdmin()\r
17                 {\r
18                 }\r
19 \r
20                 private static NotificacionesAdmin _instancia = new NotificacionesAdmin();\r
21                 public static NotificacionesAdmin Instancia\r
22                 {\r
23                         get { return NotificacionesAdmin._instancia; }\r
24                 }\r
25 \r
26                 #endregion Constructores\r
27 \r
28                 #region Métodos Públicos\r
29 \r
30                 public void EnviarAlPrestador( Prestador p, NotificacionPrestador.Tipo tipoNotif, InfoPrestacionesReport ip )\r
31                 {\r
32                         string currentDir = Directory.GetCurrentDirectory();\r
33                 \r
34                         string dirMails = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioMails"] );\r
35                         if ( ! Directory.Exists(dirMails) )\r
36                         {\r
37                                 Directory.CreateDirectory( dirMails );\r
38                         }\r
39 \r
40                         string pathName = Path.Combine( dirMails, "prestadores.txt" );\r
41                         string subject = string.Empty;\r
42                         string extra = string.Empty;\r
43 \r
44                         switch ( tipoNotif )\r
45                         {\r
46                                 case NotificacionPrestador.Tipo.ProcesoExitoso:\r
47                                         subject = "OK " + ip.NombreArchivo;\r
48                                         break;\r
49                                 case NotificacionPrestador.Tipo.InfoNoRecibida:\r
50                                         subject = "NORECIBIDO " + DateTime.Now.ToString("yyyy-MM-dd");\r
51                                         break;\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
56                                         else\r
57                                         {\r
58                                                 foreach ( string s in ip.ErroresValidacion )\r
59                                                 {\r
60                                                         extra += ( @"--> " + s + System.Environment.NewLine );\r
61                                                 }\r
62                                         }\r
63                                         break;\r
64                         }\r
65 \r
66                         this.EscribirArchivo( pathName, subject, "Prestador: " + p.Cuit, extra );\r
67                 }\r
68 \r
69                 public void EnviarAPagos( string mensaje )\r
70                 {\r
71                         string currentDir = Directory.GetCurrentDirectory();\r
72                 \r
73                         string dirMails = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioMails"] );\r
74                         if ( ! Directory.Exists(dirMails) )\r
75                         {\r
76                                 Directory.CreateDirectory( dirMails );\r
77                         }\r
78 \r
79                         string pathName = Path.Combine( dirMails, "pagos.txt" );\r
80                         string subject = mensaje;\r
81         \r
82                         this.EscribirArchivo( pathName, subject, string.Empty, string.Empty );\r
83                 }\r
84 \r
85                 #endregion Métodos Públicos\r
86 \r
87                 #region Métodos privados\r
88 \r
89                 private void EscribirArchivo( string pathName, string subject, string titulo, string extra )\r
90                 {\r
91                         StreamWriter w = null;\r
92                         if ( File.Exists(pathName) )\r
93                                 w = File.AppendText( pathName );\r
94                         else\r
95                                 w = File.CreateText( pathName );\r
96 \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
101                         w.WriteLine();\r
102                         if ( extra.Trim() != string.Empty )\r
103                         {\r
104                                 w.WriteLine( "Detalle: " );\r
105                                 w.WriteLine(extra);\r
106                                 w.WriteLine();\r
107                         }\r
108                         w.WriteLine( @"------------------------------------------------------------------------------" );\r
109                         w.WriteLine();\r
110 \r
111                         w.Close();\r
112                 }\r
113 \r
114                 #endregion Métodos privados\r
115         }\r
116 }\r
117 \r