]> git.llucax.com Git - z.facultad/75.10/miklolife.git/blob - demo/src/Reportes/InfoPrestacionesAdmin.cs
mas fixes y puesta linda
[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                         string pathToMove = Path.Combine( dirAceptados, ip.NombreArchivo );\r
86                         if ( File.Exists(pathToMove) )\r
87                                 File.Delete( pathToMove );\r
88 \r
89                         File.Move( ip.PathArchivo, pathToMove );\r
90                 }\r
91 \r
92                 public void MoverArchivoRechazado( InfoPrestacionesReport ip )\r
93                 {\r
94                         string currentDir = Directory.GetCurrentDirectory();\r
95                 \r
96                         string dirRechazados = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioInformesRechazados"] );\r
97                         if ( ! Directory.Exists(dirRechazados) )\r
98                         {\r
99                                 Directory.CreateDirectory( dirRechazados );\r
100                         }\r
101 \r
102                         string pathToMove = Path.Combine( dirRechazados, ip.NombreArchivo );\r
103                         if ( File.Exists(pathToMove) )\r
104                                 File.Delete( pathToMove );\r
105 \r
106                         File.Move( ip.PathArchivo, pathToMove );\r
107                 }\r
108 \r
109                 #endregion Métodos Públicos\r
110 \r
111                 #region Métodos Privados\r
112 \r
113                 /// <summary>\r
114                 /// Obtiene el directorio asociado con un prestador, en base a la info del archivo de configuracion\r
115                 /// Si el directorio no existe en el file system, lo crea.\r
116                 /// </summary>\r
117                 /// <param name="p"></param>\r
118                 /// <returns></returns>\r
119                 private DirectoryInfo ObtenerDirectorio( Prestador p )\r
120                 {\r
121                         string currentDir = Directory.GetCurrentDirectory();\r
122                 \r
123                         string dirPrestadores = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioPrestadores"] );\r
124                         if ( ! Directory.Exists(dirPrestadores) )\r
125                         {\r
126                                 Directory.CreateDirectory( dirPrestadores );\r
127                         }\r
128 \r
129                         string dirPrestador = Path.Combine( dirPrestadores, p.Cuit );\r
130                         if ( ! Directory.Exists(dirPrestador) )\r
131                         {\r
132                                 Directory.CreateDirectory( dirPrestador );\r
133                         }\r
134 \r
135                         return new DirectoryInfo( dirPrestador );\r
136                 }\r
137 \r
138                 #endregion Métodos Privados\r
139         }\r
140 }\r