#region Usings using System; using Dominio.Autorizaciones; using System.IO; using System.Configuration; using System.Xml; #endregion Usings namespace Reportes { /// /// Clase que contiene la funcionalidad para levantar información recibida del Prestador, /// y generar y enviar reportes. /// public class InfoPrestacionesAdmin { #region Constructores public InfoPrestacionesAdmin() { } #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 } }