X-Git-Url: https://git.llucax.com/z.facultad/75.10/miklolife.git/blobdiff_plain/aeb71279fa96dfc8e3832d04ae25d68c6853d39f..2be5451ef59289f66dbd3e1d9ff5a69fcc271364:/demo/src/Reportes/InfoPrestacionesAdmin.cs?ds=inline diff --git a/demo/src/Reportes/InfoPrestacionesAdmin.cs b/demo/src/Reportes/InfoPrestacionesAdmin.cs index 2a1d646..121f2cd 100644 --- a/demo/src/Reportes/InfoPrestacionesAdmin.cs +++ b/demo/src/Reportes/InfoPrestacionesAdmin.cs @@ -1,4 +1,12 @@ +#region Usings + using System; +using Dominio.Autorizaciones; +using System.IO; +using System.Configuration; +using System.Xml; + +#endregion Usings namespace Reportes { @@ -15,5 +23,118 @@ namespace Reportes } #endregion Constructores + + #region Métodos Públicos + + /// + /// Crea una lista de objetos InfoPrestacionesReport a partir de los archivos enviados por el + /// Prestador que están en su directorio asociado + /// + /// Prestador del cual se desea obtener sus informes enviados + /// Lista de informes enviados por el prestador + public InfoPrestacionesReport[] ObtenerInfoPendiente( Prestador p ) + { + InfoPrestacionesReport[] informes = null; + + try + { + DirectoryInfo dir = this.ObtenerDirectorio( p ); + FileInfo[] archivos = dir.GetFiles( "*.xml" ); + + informes = new InfoPrestacionesReport[ archivos.Length ]; + + for ( int i = 0; i < informes.Length; i++ ) + { + informes[i] = new InfoPrestacionesReport( archivos[i].FullName ); + } + } + catch + { + throw; + } + + return informes; + } + + public void EnviarReporte( ConsumoAfiliadosReport reporteConsumo ) + { + if ( reporteConsumo == null ) + return; + else + reporteConsumo.Serializar(); + } + + public void EnviarReporte( PrestacionesRealizadasReport informeAprobaciones ) + { + if ( informeAprobaciones == null ) + return; + else + informeAprobaciones.Serializar(); + } + + public void MoverArchivoAceptado( InfoPrestacionesReport ip ) + { + string currentDir = Directory.GetCurrentDirectory(); + + string dirAceptados = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioInformesAceptados"] ); + if ( ! Directory.Exists(dirAceptados) ) + { + Directory.CreateDirectory( dirAceptados ); + } + + string pathToMove = Path.Combine( dirAceptados, ip.NombreArchivo ); + if ( File.Exists(pathToMove) ) + File.Delete( pathToMove ); + + File.Move( ip.PathArchivo, pathToMove ); + } + + public void MoverArchivoRechazado( InfoPrestacionesReport ip ) + { + string currentDir = Directory.GetCurrentDirectory(); + + string dirRechazados = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioInformesRechazados"] ); + if ( ! Directory.Exists(dirRechazados) ) + { + Directory.CreateDirectory( dirRechazados ); + } + + string pathToMove = Path.Combine( dirRechazados, ip.NombreArchivo ); + if ( File.Exists(pathToMove) ) + File.Delete( pathToMove ); + + File.Move( ip.PathArchivo, pathToMove ); + } + + #endregion Métodos Públicos + + #region Métodos Privados + + /// + /// Obtiene el directorio asociado con un prestador, en base a la info del archivo de configuracion + /// Si el directorio no existe en el file system, lo crea. + /// + /// + /// + private DirectoryInfo ObtenerDirectorio( Prestador p ) + { + string currentDir = Directory.GetCurrentDirectory(); + + string dirPrestadores = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioPrestadores"] ); + if ( ! Directory.Exists(dirPrestadores) ) + { + Directory.CreateDirectory( dirPrestadores ); + } + + string dirPrestador = Path.Combine( dirPrestadores, p.Cuit ); + if ( ! Directory.Exists(dirPrestador) ) + { + Directory.CreateDirectory( dirPrestador ); + } + + return new DirectoryInfo( dirPrestador ); + } + + #endregion Métodos Privados } }