#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
}
}