/// <summary> /// Ler conteúdo da Tag de uma determinada NFe que já está no controle de fluxo de notas sendo enviadas /// </summary> /// <param name="strChaveNFe">Chave da NFe que é para ler a tag</param> /// <param name="Tag">Nome da tag a ser lida</param> /// <returns>Retorna o conteúdo da TAG</returns> /// <by>Wandrey Mundin Ferreira</by> /// <date>20/04/2009</date> public string LerTag(string strChaveNFe, ElementoEditavel Tag) { string strConteudo = string.Empty; strConteudo = LerTag(strChaveNFe, Tag.ToString()); return strConteudo; }
/// <summary> /// Atualizar o conteúdo das Tag´s do XML de controle do Fluxo /// </summary> /// <param name="chaveNFe">Chave da NFe</param> /// <param name="tag">Tag a ser atualizada</param> /// <param name="novoConteudo">Novo conteúdo para a tag</param> /// <by>Wandrey Mundin Ferreira</by> /// <date>17/04/2009</date> public void AtualizarTag(string chaveNFe, ElementoEditavel tag, string novoConteudo) { CriarXml(); DateTime startTime; DateTime stopTime; TimeSpan elapsedTime; long elapsedMillieconds; startTime = DateTime.Now; while (true) { stopTime = DateTime.Now; elapsedTime = stopTime.Subtract(startTime); elapsedMillieconds = (int)elapsedTime.TotalMilliseconds; FileStream fsArquivo = null; try { lock (Smf.Fluxo) { XmlDocument xdXml = new XmlDocument(); //Criar instância do XmlDocument Class fsArquivo = OpenFileFluxo(false); //Abrir um arquivo XML usando FileStream xdXml.Load(fsArquivo); //Carregar o arquivo aberto no XmlDocument XmlNodeList list = xdXml.GetElementsByTagName(ElementoFixo.Documento.ToString()); //Pesquisar o elemento Documento no arquivo XML for (int i = 0; i < list.Count; i++) //Navegar em todos os elementos do nó Documento { XmlElement xeDoc = (XmlElement)xdXml.GetElementsByTagName(ElementoFixo.Documento.ToString())[i]; //Recuperar o conteúdo da tag Produto XmlElement xeTag = (XmlElement)xdXml.GetElementsByTagName(tag.ToString())[i]; //Recuperar o conteúdo da tag if (xeDoc.GetAttribute(ElementoFixo.ChaveNFe.ToString()) == chaveNFe) { if (xeTag != null) { xeTag.InnerText = novoConteudo; //Setar o novo conteúdo para a tag } break; } } fsArquivo.Close(); //Fecha o arquivo XML xdXml.Save(NomeXmlControleFluxo); //Grava o arquivo xml break; } } catch { if (fsArquivo != null) { fsArquivo.Close(); } if (elapsedMillieconds >= 120000) //120.000 ms que corresponde á 120 segundos que corresponde a 2 minuto { throw; } } Thread.Sleep(1000); } }