using System; using System.Collections; using System.Xml; namespace Reportes { /// /// Clase que representa un archivo de Información de Prestaciones Realizadas enviado por el /// Prestador. /// public class InfoPrestacionesReport { #region Constructores public InfoPrestacionesReport( string pathNombreArchivo ) { this._pathArchivo = pathNombreArchivo; } #endregion Constructores #region Campos Privados private bool _esBienFormado = true; private string _pathArchivo = string.Empty; private string _cuitPrestador; private DateTime _fechaEnvio; private ArrayList _lineas = null; #endregion Campos Privados #region Propiedades Públicas public string PathArchivo { get { return this._pathArchivo; } set { this._pathArchivo = value; } } public string CuitPrestador { get { return this._cuitPrestador; } set { this._cuitPrestador = value; } } public DateTime FechaEnvio { get { return this._fechaEnvio; } set { this._fechaEnvio = value; } } public ArrayList Lineas { get { return this._lineas; } set { this._lineas = value; } } #endregion Propiedades Públicas #region Métodos públicos public bool ValidarFormato() { XmlDocument xmlDoc = new System.Xml.XmlDocument(); try { xmlDoc.Load( this._pathArchivo ); } catch ( XmlException xmlEx ) { #warning Ver como mostrar los errores return false; } if ( this.ValidarContraSchema( xmlDoc ) ) { this.CargarXml( xmlDoc ); } else { //Mostrar error y retornar return false; } return true; } public void ValidarLineas( Dominio.Autorizaciones.Prestador prestador ) { foreach ( LineaInfoPrestacionesReport linea in this._lineas ) { linea.Validar( prestador ); } } #endregion Métodos públicos #region Métodos privados private bool ValidarContraSchema( XmlDocument xmlDoc ) { return true; } /// /// Toma un xmlDoc valido contra el schema /// /// private void CargarXml( XmlDocument xmlDoc ) { XmlNode root = xmlDoc["infoPrestaciones"]; this.FechaEnvio = DateTime.Parse( root.Attributes["fechaEnvio"].InnerText ); XmlElement prestador = root["prestador"]; this.CuitPrestador = prestador["CUIT"].InnerText; XmlElement lineasXml = root["lineas"]; if ( lineasXml.HasChildNodes ) { for ( int i = 0; i < lineasXml.ChildNodes.Count; i++ ) { //lineasXml.ChildNodes[i].Attributes["codiogoAutorizacion"] #warning Guille --> Seguir aca } } } #endregion Métodos privados } }