private void BtnDescompactarXML_Click(object sender, EventArgs e) { txtXML.Text = spdNFe.DescompactarXMLZip(txtXML.Text); }
private void DescompactarDFe(string aXmlDFe) { List <InformacaoArquivoDFe> listDFe = new List <InformacaoArquivoDFe>(); try { var _cStat = string.Empty; var _docXmlDFe = new XmlDocument(); _docXmlDFe.LoadXml(aXmlDFe); if (_docXmlDFe.GetElementsByTagName("cStat")[0] != null) { _cStat = _docXmlDFe.GetElementsByTagName("cStat")[0].InnerText; } if (_cStat == "138") //138 = Documento Localizado { string _conteudoLinhaDocZip = ""; using (XmlTextReader _xml = new XmlTextReader(new System.IO.StringReader(aXmlDFe))) { bool _nodeDocZip = false; int _i = 0; while (_xml.Read()) { if (_xml.NodeType == XmlNodeType.Element) { _nodeDocZip = (_xml.Name == "docZip"); } if ((_nodeDocZip) && (_xml.NodeType == XmlNodeType.Text)) { _i += 1; _conteudoLinhaDocZip = _xml.Value; var _xmlDescompactado = _spdNFeX.DescompactarXMLZip(_conteudoLinhaDocZip); var _docXmlDescompactado = new XmlDocument(); _docXmlDescompactado.LoadXml(_xmlDescompactado); if (_docXmlDescompactado.DocumentElement.Name == "resNFe") { InformacaoArquivoDFe _dfe = new InformacaoArquivoDFe(); _dfe.ChaveNFe = _docXmlDescompactado.GetElementsByTagName("chNFe")[0].InnerText; _dfe.NomeEmitente = _docXmlDescompactado.GetElementsByTagName("xNome")[0].InnerText; _dfe.ValorNFe = _docXmlDescompactado.GetElementsByTagName("vNF")[0].InnerText; _dfe.ConteudoXml = _xmlDescompactado; var existe = listDFe.Where(reg => reg.ChaveNFe == _docXmlDescompactado.GetElementsByTagName("chNFe")[0].InnerText); if (!existe.Any()) { listDFe.Add(_dfe); } } } } } } } catch (Exception ex) { MessageBox.Show("Erro ao Consultar Distribuição DFe -> " + ex.Message); } txtQtdNotas.Text = listDFe.Count.ToString(); grdNotas.DataSource = listDFe; grdNotas.AutoResizeColumns(); tbcDFe.SelectedTab = (listDFe.Count > 0) ? tabListagem : tabXML; }