NFe.Components.QRCode.QRCode.AddLinkQRCode C# (CSharp) Method

AddLinkQRCode() public method

Adicionar link gerado ao XML
public AddLinkQRCode ( ) : void
return void
        public void AddLinkQRCode()
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(ArquivoXML);
            doc.PreserveWhitespace = false;

            foreach (var item in doc)
            {
                if (typeof(XmlElement) == item.GetType())
                {
                    XmlNode Signature = (XmlElement)doc.GetElementsByTagName("Signature")[0];
                    XmlNode el = item as XmlNode;
                    XmlNode nd = doc.CreateElement("infNFeSupl", doc.DocumentElement.NamespaceURI);
                    XmlNode nd1 = doc.CreateElement("qrCode", doc.DocumentElement.NamespaceURI);
                    nd1.InnerXml = ("<![CDATA[" + this.ParametrosLinkConsulta.Trim() + "]]>").Trim();
                    nd.AppendChild(nd1);
                    el.RemoveChild(Signature);
                    el.AppendChild(nd);
                    el.AppendChild(Signature);

                    break;
                }
            }

            string xmlComQRCode = doc.OuterXml;
            StreamWriter SW_2 = File.CreateText(ArquivoXML);
            SW_2.Write(xmlComQRCode);
            SW_2.Close();
        }

Usage Example

Example #1
0
        /// <summary>
        /// Efetua a validação de qualquer XML, NFE, Cancelamento, Inutilização, etc..., e retorna se está ok ou não
        /// </summary>
        /// <param name="Arquivo">Nome do arquivo XML a ser validado e assinado</param>
        /// <param name="PastaValidar">Nome da pasta onde fica os arquivos a serem validados</param>
        /// <param name="PastaXMLErro">Nome da pasta onde é para gravar os XML´s validados que apresentaram erro.</param>
        /// <param name="PastaXMLRetorno">Nome da pasta de retorno onde será gravado o XML com o status da validação</param>
        /// <param name="Certificado">Certificado digital a ser utilizado na validação</param>
        /// <by>Wandrey Mundin Ferreira</by>
        /// <date>28/05/2009</date>
        public void ValidarAssinarXML(string Arquivo)
        {
            int emp = Empresas.FindEmpresaByThread();

            Boolean Assinou = true;

            //Assinar o XML se tiver tag para assinar
            AssinaturaDigital oAD = new AssinaturaDigital();

            try
            {
                if (TipoArqXml.nRetornoTipoArq >= 1 && TipoArqXml.nRetornoTipoArq <= SchemaXML.MaxID)
                {
                    this.EncryptAssinatura(Arquivo);    //danasa: 12/2013

                    oAD.Assinar(Arquivo, emp, Empresas.Configuracoes[emp].UnidadeFederativaCodigo);

                    Assinou = true;
                }
            }
            catch (Exception ex)
            {
                Assinou = false;
                try
                {
                    GravarXMLRetornoValidacao(Arquivo, "2", "Ocorreu um erro ao assinar o XML: " + ex.Message);
                    new Auxiliar().MoveArqErro(Arquivo);
                }
                catch
                {
                    //Se deu algum erro na hora de gravar o retorno do erro para o ERP, infelizmente não posso fazer nada.
                    //Isso pode acontecer se falhar rede, hd, problema de permissão de pastas, etc... Wandrey 23/03/2010
                }
            }

            if (Assinou)
            {
                #region Adicionar a tag do qrCode na NFCe
                if (Arquivo.EndsWith(Propriedade.ExtEnvio.Nfe, StringComparison.InvariantCultureIgnoreCase))
                {
                    if (!String.IsNullOrEmpty(Empresas.Configuracoes[emp].IndentificadorCSC))
                    {
                        QRCode qrCode = new QRCode(Empresas.Configuracoes[emp].IndentificadorCSC, Empresas.Configuracoes[emp].TokenCSC, Arquivo);

                        if (qrCode.CalcularLink())
                        {
                            string url = Empresas.Configuracoes[emp].AmbienteCodigo == (int)NFe.Components.TipoAmbiente.taHomologacao ? Empresas.Configuracoes[emp].URLConsultaDFe.UrlNFCeH : Empresas.Configuracoes[emp].URLConsultaDFe.UrlNFCe;

                            qrCode.GerarLinkConsulta(url);
                            qrCode.AddLinkQRCode();
                        }
                    }
                }
                #endregion



                // Validar o Arquivo XML
                if (TipoArqXml.nRetornoTipoArq >= 1 && TipoArqXml.nRetornoTipoArq <= SchemaXML.MaxID)
                {
                    try
                    {
                        Validar(Arquivo);
                        if (Retorno != 0)
                        {
                            this.GravarXMLRetornoValidacao(Arquivo, "3", "Ocorreu um erro ao validar o XML: " + RetornoString);
                            new Auxiliar().MoveArqErro(Arquivo);
                        }
                        else
                        {
                            if (!Directory.Exists(Empresas.Configuracoes[emp].PastaValidado))
                            {
                                Directory.CreateDirectory(Empresas.Configuracoes[emp].PastaValidado);
                            }

                            string ArquivoNovo = Empresas.Configuracoes[emp].PastaValidado + "\\" + Functions.ExtrairNomeArq(Arquivo, ".xml") + ".xml";

                            Functions.Move(Arquivo, ArquivoNovo);
                            /*
                            if (File.Exists(ArquivoNovo))
                            {
                                FileInfo oArqNovo = new FileInfo(ArquivoNovo);
                                oArqNovo.Delete();
                            }

                            FileInfo oArquivo = new FileInfo(Arquivo);
                            oArquivo.MoveTo(ArquivoNovo);
                            */

                            this.GravarXMLRetornoValidacao(Arquivo, "1", "XML assinado e validado com sucesso.");
                        }
                    }
                    catch (Exception ex)
                    {
                        try
                        {
                            this.GravarXMLRetornoValidacao(Arquivo, "4", "Ocorreu um erro ao validar o XML: " + ex.Message);
                            new Auxiliar().MoveArqErro(Arquivo);
                        }
                        catch
                        {
                            //Se deu algum erro na hora de gravar o retorno do erro para o ERP, infelizmente não posso fazer nada.
                            //Isso pode acontecer se falhar rede, hd, problema de permissão de pastas, etc... Wandrey 23/03/2010
                        }
                    }
                }
                else
                {
                    try
                    {
                        this.GravarXMLRetornoValidacao(Arquivo, "5", "Ocorreu um erro ao validar o XML: " + TipoArqXml.cRetornoTipoArq);
                        new Auxiliar().MoveArqErro(Arquivo);
                    }
                    catch
                    {
                        //Se deu algum erro na hora de gravar o retorno do erro para o ERP, infelizmente não posso fazer nada.
                        //Isso pode acontecer se falhar rede, hd, problema de permissão de pastas, etc... Wandrey 23/03/2010
                    }
                }
            }
        }
All Usage Examples Of NFe.Components.QRCode.QRCode::AddLinkQRCode