Ejemplo n.º 1
0
 /// <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;
 }
Ejemplo n.º 2
0
        /// <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);
            }
        }