]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - demo/src/Reportes/InfoPrestacionesAdmin.cs
- Valida contra el schema
[z.facultad/75.10/miklolife.git] / demo / src / Reportes / InfoPrestacionesAdmin.cs
1 #region Usings\r
2 \r
3 using System;\r
4 using Dominio.Autorizaciones;\r
5 using System.IO;\r
6 using System.Configuration;\r
7 using System.Xml;\r
8 \r
9 #endregion Usings\r
10 \r
11 namespace Reportes\r
12 {\r
13         /// <summary>\r
14         /// Clase que contiene la funcionalidad para levantar información recibida del Prestador, \r
15         /// y generar y enviar reportes.\r
16         /// </summary>\r
17         public class InfoPrestacionesAdmin\r
18         {\r
19                 #region Constructores\r
20                 \r
21                 public InfoPrestacionesAdmin()\r
22                 {\r
23                 }\r
24 \r
25                 #endregion Constructores\r
26 \r
27                 #region Métodos Públicos\r
28 \r
29                 /// <summary>\r
30                 /// Crea una lista de objetos InfoPrestacionesReport a partir de los archivos enviados por el\r
31                 /// Prestador que están en su directorio asociado\r
32                 /// </summary>\r
33                 /// <param name="p">Prestador del cual se desea obtener sus informes enviados</param>\r
34                 /// <returns>Lista de informes enviados por el prestador</returns>\r
35                 public InfoPrestacionesReport[] ObtenerInfoPendiente( Prestador p )\r
36                 {\r
37                         InfoPrestacionesReport[] informes = null;\r
38 \r
39                         try\r
40                         {\r
41                                 DirectoryInfo dir = this.ObtenerDirectorio( p );\r
42                                 FileInfo[] archivos = dir.GetFiles( "*.xml" );\r
43 \r
44                                 informes = new InfoPrestacionesReport[ archivos.Length ];\r
45                                 \r
46                                 for ( int i = 0; i < informes.Length; i++ )\r
47                                 {       \r
48                                         informes[i] = new InfoPrestacionesReport( archivos[i].FullName );\r
49                                 }\r
50                         }\r
51                         catch\r
52                         {\r
53                                 throw;\r
54                         }\r
55 \r
56                         return informes;\r
57                 }\r
58 \r
59                 public void EnviarReporte( ConsumoAfiliadosReport reporteConsumo )\r
60                 {\r
61                         if ( reporteConsumo == null )\r
62                                 return;\r
63                         else\r
64                                 reporteConsumo.Serializar();\r
65                 }\r
66 \r
67                 public void EnviarReporte( PrestacionesRealizadasReport informeAprobaciones )\r
68                 {\r
69                         if ( informeAprobaciones == null )\r
70                                 return;\r
71                         else\r
72                                 informeAprobaciones.Serializar();\r
73                 }\r
74 \r
75                 public void MoverArchivoAceptado( InfoPrestacionesReport ip )\r
76                 {\r
77                         string currentDir = Directory.GetCurrentDirectory();\r
78                 \r
79                         string dirAceptados = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioInformesAceptados"] );\r
80                         if ( ! Directory.Exists(dirAceptados) )\r
81                         {\r
82                                 Directory.CreateDirectory( dirAceptados );\r
83                         }\r
84 \r
85                         File.Move( ip.PathArchivo, Path.Combine( dirAceptados, ip.NombreArchivo ) );\r
86         \r
87                 }\r
88 \r
89                 public void MoverArchivoRechazado( InfoPrestacionesReport ip )\r
90                 {\r
91                         string currentDir = Directory.GetCurrentDirectory();\r
92                 \r
93                         string dirRechazados = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioInformesRechazados"] );\r
94                         if ( ! Directory.Exists(dirRechazados) )\r
95                         {\r
96                                 Directory.CreateDirectory( dirRechazados );\r
97                         }\r
98 \r
99                         File.Move( ip.PathArchivo, Path.Combine( dirRechazados, ip.NombreArchivo ) );\r
100 \r
101                 }\r
102 \r
103                 #endregion Métodos Públicos\r
104 \r
105                 #region Métodos Privados\r
106 \r
107                 /// <summary>\r
108                 /// Obtiene el directorio asociado con un prestador, en base a la info del archivo de configuracion\r
109                 /// Si el directorio no existe en el file system, lo crea.\r
110                 /// </summary>\r
111                 /// <param name="p"></param>\r
112                 /// <returns></returns>\r
113                 private DirectoryInfo ObtenerDirectorio( Prestador p )\r
114                 {\r
115                         string currentDir = Directory.GetCurrentDirectory();\r
116                 \r
117                         string dirPrestadores = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioPrestadores"] );\r
118                         if ( ! Directory.Exists(dirPrestadores) )\r
119                         {\r
120                                 Directory.CreateDirectory( dirPrestadores );\r
121                         }\r
122 \r
123                         string dirPrestador = Path.Combine( dirPrestadores, p.Cuit );\r
124                         if ( ! Directory.Exists(dirPrestador) )\r
125                         {\r
126                                 Directory.CreateDirectory( dirPrestador );\r
127                         }\r
128 \r
129                         return new DirectoryInfo( dirPrestador );\r
130                 }\r
131 \r
132                 #endregion Métodos Privados\r
133         }\r
134 }\r