+ XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);\r
+ xmlDoc.AppendChild(xmlDeclaration);\r
+\r
+ XmlElement root = this.xmlDoc.CreateElement( "reporteConsumo" );\r
+ root.SetAttribute( "fechaGeneracion", DateTime.Now.ToString( "yyyy-MM-dd" ) );\r
+ \r
+ root.AppendChild( xmlDoc.CreateElement( "lineas" ) );\r
+\r
+ xmlDoc.AppendChild( root );\r
+ }\r
+\r
+ #endregion Constructores\r
+\r
+ private XmlDocument xmlDoc = new XmlDocument(); \r
+ private ArrayList _listaCodigosAfiliado = new ArrayList();\r
+\r
+ #region Metodos Publicos\r
+\r
+ public void AgregarInfo( Prestador p, LineaInfoPrestacionesReport lineaIp )\r
+ {\r
+ XmlElement lineas = xmlDoc.DocumentElement["lineas"];\r
+ XmlElement elemLinea = null;\r
+\r
+ #region Datos propios de Afiliado\r
+ if ( this._listaCodigosAfiliado.Contains(lineaIp.CodigoAfiliado) )\r
+ { //Ya está el afiliado en el xml\r
+ elemLinea = lineas.SelectSingleNode( @"//linea[@codigoAfiliado='" + lineaIp.CodigoAfiliado.ToString().Trim() + "']" ) as XmlElement;\r
+ }\r
+ else\r
+ {\r
+ Afiliado a = this.getAfiliado( lineaIp.CodigoAfiliado );\r
+\r
+ //El nodo afiliado todavía no está en el xml\r
+ elemLinea = this.xmlDoc.CreateElement("linea");\r
+ elemLinea.SetAttribute( "codigoAfiliado", lineaIp.CodigoAfiliado.ToString().Trim() );\r
+ lineas.AppendChild( elemLinea );\r
+\r
+ //nombreAfiliado\r
+ XmlElement elemNombreAfiliado = this.xmlDoc.CreateElement("nombreAfiliado");\r
+ elemNombreAfiliado.InnerText = ( (a.Nombre == null)? string.Empty : a.Nombre.Trim() );\r
+ elemLinea.AppendChild( elemNombreAfiliado );\r
+\r
+ //apellidoAfiliado\r
+ XmlElement elemApellidoAfiliado = this.xmlDoc.CreateElement("apellidoAfiliado");\r
+ elemApellidoAfiliado.InnerText = ( (a.Apellido == null)? string.Empty : a.Apellido.Trim() );\r
+ elemLinea.AppendChild( elemApellidoAfiliado );\r
+ \r
+ //codigoPlanAfiliado\r
+ XmlElement elemCodigoPlanAfiliado = this.xmlDoc.CreateElement("codigoPlanAfiliado");\r
+ elemCodigoPlanAfiliado.InnerText = ( (a.PlanActual == null)? string.Empty : a.PlanActual.Codigo.ToString().Trim() );\r
+ elemLinea.AppendChild( elemCodigoPlanAfiliado );\r
+ \r
+ this._listaCodigosAfiliado.Add(lineaIp.CodigoAfiliado);\r
+ }\r
+ #endregion Datos propios de Afiliado\r
+\r
+ #region Autorizacion Realizada\r
+\r
+ //autorizacionRealizada\r
+ XmlElement elemAutorizacion = this.xmlDoc.CreateElement( "autorizacionRealizada" );\r
+ elemAutorizacion.SetAttribute( "codigo", lineaIp.CodigoAutorizacion.ToString().Trim() );\r
+\r
+ //prestador\r
+ XmlElement elemPrestador = this.xmlDoc.CreateElement( "prestador" );\r
+ XmlElement elemCuit = this.xmlDoc.CreateElement( "CUIT" );\r
+ elemCuit.InnerText = p.Cuit.ToString().Trim();\r
+ elemPrestador.AppendChild( elemCuit );\r
+ XmlElement elemNombrePrestador = this.xmlDoc.CreateElement( "nombre" );\r
+ elemNombrePrestador.InnerText = ((p.Nombre == null)? string.Empty : p.Nombre.ToString().Trim());\r
+ elemPrestador.AppendChild( elemNombrePrestador );\r
+ elemAutorizacion.AppendChild( elemPrestador );\r
+\r
+ //codigoPrestacion\r
+ XmlElement elemCodPrestacion = this.xmlDoc.CreateElement( "codigoPrestacion" );\r
+ elemCodPrestacion.InnerText = lineaIp.CodigoPrestacion.Trim();\r
+ elemAutorizacion.AppendChild( elemCodPrestacion );\r
+\r
+ //nombrePrestacion\r
+ Prestacion prestacion = this.getPrestacion( lineaIp.CodigoPrestacion );\r
+ XmlElement elemNombrePrestacion = this.xmlDoc.CreateElement( "nombrePrestacion" );\r
+ elemNombrePrestacion.InnerText = ( (prestacion.Nombre == null)? string.Empty : prestacion.Nombre.Trim() );\r
+ elemAutorizacion.AppendChild( elemNombrePrestacion );\r
+\r
+ //fechaRealizacion\r
+ XmlElement elemFechaRealizacion = this.xmlDoc.CreateElement( "fechaRealizacion" );\r
+ elemFechaRealizacion.InnerText = lineaIp.FechaRealizacion.ToString( "yyyy-MM-dd" );\r
+ elemAutorizacion.AppendChild( elemFechaRealizacion );\r
+ \r
+ //porcentajeCobertura\r
+ XmlElement elemPorcentaje = this.xmlDoc.CreateElement( "porcentajeCobertura" );\r
+ elemPorcentaje.InnerText = lineaIp.PorcentajeCobertura.ToString().Trim();\r
+ elemAutorizacion.AppendChild( elemPorcentaje );\r
+\r
+ elemLinea.AppendChild( elemAutorizacion );\r
+\r
+ #endregion Autorizacion Realizada\r
+ }\r
+\r
+ public override string ToString()\r
+ {\r
+ return xmlDoc.OuterXml;\r
+ }\r
+\r
+ public void Serializar()\r
+ {\r
+ string currentDir = Directory.GetCurrentDirectory();\r
+ string dirPagos = Path.Combine( currentDir, ConfigurationSettings.AppSettings["DirectorioPagos"] );\r
+ if ( ! Directory.Exists(dirPagos) )\r
+ {\r
+ Directory.CreateDirectory( dirPagos );\r
+ }\r
+ \r
+ int secuencia = 0;\r
+ \r
+ string baseFileName = "rc_" + DateTime.Now.ToString("yyyy-MM-dd") + "_"; \r
+ string pathName = Path.Combine( dirPagos, baseFileName + secuencia.ToString("00") + ".xml" );\r
+ \r
+ while ( File.Exists(pathName) )\r
+ {\r
+ secuencia += 1;\r
+ pathName = Path.Combine( dirPagos, baseFileName + secuencia.ToString("00") + ".xml");\r
+ }\r
+\r
+ XmlTextWriter writer = new XmlTextWriter( pathName, null );\r
+ writer.Formatting = Formatting.Indented;\r
+ this.xmlDoc.Save(writer);\r