void Lee_XML_En_Directorio(string path) { try { ArchivosXML.Clear(); string[] filePaths = Directory.GetFiles(path, "*.xml"); lblStatus.Text = "Leyendo directorio..."; statusStrip1.Refresh(); int cont = 0; foreach (string filename in filePaths) { XMLRow nuevoElemento = new XMLRow(); StreamReader reader = new StreamReader(filename); string xmlstring = reader.ReadToEnd(); Comprobante comprobante = new Comprobante(); nuevoElemento.XML_Nombre_Archivo = Path.GetFileName(filename); try { var serializer = new XmlSerializer(typeof(Comprobante)); cont++; using (TextReader lector = new StringReader(xmlstring)) { lblStatus.Text = "Archivo " + cont.ToString() + " de " + filePaths.Count().ToString() + "; Serializando " + nuevoElemento.XML_Nombre_Archivo + " a Comprobante CFDI..."; statusStrip1.Refresh(); comprobante = (Comprobante)serializer.Deserialize(lector); } nuevoElemento.XML_RFC_Emisor = comprobante.Emisor.rfc; nuevoElemento.XML_RFC_Receptor = comprobante.Receptor.rfc; nuevoElemento.XML_Total = comprobante.total; nuevoElemento.XML_Esquema_CFDI = "Esquema Valido"; } catch { nuevoElemento.XML_Esquema_CFDI = "Esquema Invalido"; nuevoElemento.XML_RFC_Emisor = ""; nuevoElemento.XML_RFC_Receptor = ""; nuevoElemento.XML_Status = "INVALIDO!!!"; nuevoElemento.XML_Total = 0.00m; nuevoElemento.XML_UUID = ""; } try { var xdoc = XDocument.Parse(xmlstring); var timbreFiscal = (from item in xdoc.Descendants() where item.Name.LocalName == "TimbreFiscalDigital" select item).First(); lblStatus.Text = "Archivo " + cont.ToString() + " de " + filePaths.Count().ToString() + "; Extrayendo Comprobante CFDI de " + nuevoElemento.XML_Nombre_Archivo + "..."; statusStrip1.Refresh(); TimbreFiscalDigital timbreXMLComplemento = new TimbreFiscalDigital(); timbreXMLComplemento.FechaTimbrado = Convert.ToDateTime(timbreFiscal.Attribute("FechaTimbrado").Value); timbreXMLComplemento.UUID = timbreFiscal.Attribute("UUID").Value; timbreXMLComplemento.noCertificadoSAT = timbreFiscal.Attribute("noCertificadoSAT").Value; timbreXMLComplemento.selloCFD = timbreFiscal.Attribute("selloCFD").Value; timbreXMLComplemento.selloSAT = timbreFiscal.Attribute("selloSAT").Value; timbreXMLComplemento.version = timbreFiscal.Attribute("version").Value; nuevoElemento.XML_UUID = timbreXMLComplemento.UUID.ToLower(); nuevoElemento.XML_Complemento_TFD = "Complemento Valido"; reader.Close(); } catch { nuevoElemento.XML_Complemento_TFD = "Complemento Invalido"; } ArchivosXML.Add(nuevoElemento); } ActualizaGrid(); } catch(Exception ex) { MessageBox.Show("Error :"+ex.ToString()); } }
void Lee_XML_En_Directorio(string path) { try { ArchivosXML.Clear(); string[] filePaths = Directory.GetFiles(path, "*.xml"); lblStatus.Text = "Leyendo directorio..."; statusStrip1.Refresh(); int cont = 0; foreach (string filename in filePaths) { XMLRow nuevoElemento = new XMLRow(); StreamReader reader = new StreamReader(filename); string xmlstring = reader.ReadToEnd(); Comprobante comprobante = new Comprobante(); nuevoElemento.XML_Nombre_Archivo = Path.GetFileName(filename); try { var serializer = new XmlSerializer(typeof(Comprobante)); cont++; using (TextReader lector = new StringReader(xmlstring)) { lblStatus.Text = "Archivo " + cont.ToString() + " de " + filePaths.Count().ToString() + "; Serializando " + nuevoElemento.XML_Nombre_Archivo + " a Comprobante CFDI..."; statusStrip1.Refresh(); comprobante = (Comprobante)serializer.Deserialize(lector); } nuevoElemento.XML_RFC_Emisor = comprobante.Emisor.rfc; nuevoElemento.XML_RFC_Receptor = comprobante.Receptor.rfc; nuevoElemento.XML_Total = comprobante.total; nuevoElemento.XML_Esquema_CFDI = "Esquema Valido"; } catch { nuevoElemento.XML_Esquema_CFDI = "Esquema Invalido"; nuevoElemento.XML_RFC_Emisor = ""; nuevoElemento.XML_RFC_Receptor = ""; nuevoElemento.XML_Status = "INVALIDO!!!"; nuevoElemento.XML_Total = 0.00m; nuevoElemento.XML_UUID = ""; } try { var xdoc = XDocument.Parse(xmlstring); var timbreFiscal = (from item in xdoc.Descendants() where item.Name.LocalName == "TimbreFiscalDigital" select item).First(); lblStatus.Text = "Archivo " + cont.ToString() + " de " + filePaths.Count().ToString() + "; Extrayendo Comprobante CFDI de " + nuevoElemento.XML_Nombre_Archivo + "..."; statusStrip1.Refresh(); TimbreFiscalDigital timbreXMLComplemento = new TimbreFiscalDigital(); timbreXMLComplemento.FechaTimbrado = Convert.ToDateTime(timbreFiscal.Attribute("FechaTimbrado").Value); timbreXMLComplemento.UUID = timbreFiscal.Attribute("UUID").Value; timbreXMLComplemento.noCertificadoSAT = timbreFiscal.Attribute("noCertificadoSAT").Value; timbreXMLComplemento.selloCFD = timbreFiscal.Attribute("selloCFD").Value; timbreXMLComplemento.selloSAT = timbreFiscal.Attribute("selloSAT").Value; timbreXMLComplemento.version = timbreFiscal.Attribute("version").Value; nuevoElemento.XML_UUID = timbreXMLComplemento.UUID.ToLower(); nuevoElemento.XML_Complemento_TFD = "Complemento Valido"; reader.Close(); } catch { nuevoElemento.XML_Complemento_TFD = "Complemento Invalido"; } ArchivosXML.Add(nuevoElemento); } ActualizaGrid(); } catch (Exception ex) { MessageBox.Show("Error :" + ex.ToString()); } }