CriarPasta() public static method

Criar as pastas para todas as empresas cadastradas e configuradas no sistema se as mesmas não existirem
public static CriarPasta ( ) : void
return void
コード例 #1
0
        /// <summary>
        /// Carregar as configurações de todas as empresas na coleção "Configuracoes"
        /// </summary>
        /// <remarks>
        /// Autor: Wandrey Mundin Ferreira
        /// Data: 29/07/2010
        /// </remarks>
        public static void CarregaConfiguracao()
        {
            Empresas.Configuracoes.Clear();
            Empresas.ExisteErroDiretorio = false;
            Empresas.CriarPasta(true);

            if (File.Exists(Propriedade.NomeArqEmpresas))
            {
                try
                {
                    XElement axml = XElement.Load(Propriedade.NomeArqEmpresas);
                    var      b1   = axml.Descendants(NFeStrConstants.Registro);
                    foreach (var item in b1)
                    {
                        Empresa empresa = new Empresa();

                        empresa.CNPJ    = item.Attribute(TpcnResources.CNPJ.ToString()).Value;
                        empresa.Nome    = item.Element(NFeStrConstants.Nome).Value.Trim();
                        empresa.Servico = Propriedade.TipoAplicativo;
                        if (item.Attribute(NFeStrConstants.Servico) != null)
                        {
                            empresa.Servico = (TipoAplicativo)Convert.ToInt16(item.Attribute(NFeStrConstants.Servico).Value.Trim());
                        }

                        string cArqErro = null;
                        bool   erro     = false;

                        try
                        {
                            int    tipoerro = 0;
                            string rc       = empresa.BuscaConfiguracao(ref tipoerro);
                            switch (tipoerro)
                            {
                            case 0:
                                string uf = GetUF(empresa.UnidadeFederativaCodigo);
                                if (uf != null)
                                {
                                    empresa.URLConsultaDFe = ConfiguracaoApp.CarregarURLConsultaDFe(uf);
                                }
                                break;

                            case 1:
                                erro = true;
                                throw new Exception(rc);

                            case 2:
                                throw new Exception(rc);
                            }
                        }
                        catch (Exception ex)
                        {
                            try
                            {
                                ///
                                /// nao acessar o metodo Auxiliar.GravarArqErroERP(string Arquivo, string Erro) já que nela tem a pesquisa da empresa
                                /// com base em "int emp = Empresas.FindEmpresaByThread();" e neste ponto ainda não foi criada
                                /// as thread's
                                cArqErro = CriaArquivoDeErro(empresa, cArqErro);

                                //Grava arquivo de ERRO para o ERP
                                File.WriteAllText(cArqErro, ex.Message);//, Encoding.Default);
                            }
                            catch { }
                        }
                        if (!erro)
                        {
                            ///
                            /// mesmo com erro, adicionar a lista para que o usuário possa altera-la
                            empresa.ChecaCaminhoDiretorio();

                            if (!string.IsNullOrEmpty(Empresas.ErroCaminhoDiretorio) && Empresas.ExisteErroDiretorio)
                            {
                                try
                                {
                                    if (cArqErro == null)
                                    {
                                        cArqErro = CriaArquivoDeErro(empresa, cArqErro);
                                    }
                                    //Grava arquivo de ERRO para o ERP
                                    File.AppendAllText(cArqErro, "Erros de diretorios:\r\n\r\n" + Empresas.ErroCaminhoDiretorio, Encoding.Default);
                                }
                                catch { }
                            }
                            Configuracoes.Add(empresa);
                        }
                    }
                }
                catch
                {
                    throw;
                }
            }
            if (!Empresas.ExisteErroDiretorio)
            {
                Empresas.CriarPasta(false);
            }
        }
コード例 #2
0
ファイル: Empresas.cs プロジェクト: tassio1125/Nfe
        /// <summary>
        /// Carregar as configurações de todas as empresas na coleção "Configuracoes"
        /// </summary>
        /// <remarks>
        /// Autor: Wandrey Mundin Ferreira
        /// Data: 29/07/2010
        /// </remarks>
        public static void CarregaConfiguracao()
        {
            Empresas.Configuracoes.Clear();
            ExisteErroDiretorio = false;

            if (File.Exists(Propriedade.NomeArqEmpresas))
            {
                //FileStream arqXml = null;

                try
                {
                    XElement axml = XElement.Load(Propriedade.NomeArqEmpresas);
                    var      b1   = axml.Descendants(NFe.Components.NFeStrConstants.Registro);
                    foreach (var item in b1)
                    {
                        Empresa empresa = new Empresa();

                        empresa.CNPJ    = item.Attribute(NFe.Components.TpcnResources.CNPJ.ToString()).Value;
                        empresa.Nome    = item.Element(NFe.Components.NFeStrConstants.Nome).Value.Trim();
                        empresa.Servico = Propriedade.TipoAplicativo;
                        if (item.Attribute(NFe.Components.NFeStrConstants.Servico) != null)
                        {
                            empresa.Servico = (TipoAplicativo)Convert.ToInt16(item.Attribute(NFe.Components.NFeStrConstants.Servico).Value.Trim());
                        }

                        try
                        {
                            empresa.BuscaConfiguracao();
                        }
                        catch (Exception ex)
                        {
                            try
                            {
                                ///
                                /// nao acessar o metodo Auxiliar.GravarArqErroERP(string Arquivo, string Erro) já que nela tem a pesquisa da empresa
                                /// com base em "int emp = Empresas.FindEmpresaByThread();" e neste ponto ainda não foi criada
                                /// as thread's
                                string cArqErro;
                                if (string.IsNullOrEmpty(empresa.PastaXmlRetorno))
                                {
                                    cArqErro = Path.Combine(Propriedade.PastaExecutavel, string.Format(Propriedade.NomeArqERRUniNFe, DateTime.Now.ToString("yyyyMMddTHHmmss")));
                                }
                                else
                                {
                                    cArqErro = Path.Combine(empresa.PastaXmlRetorno, string.Format(Propriedade.NomeArqERRUniNFe, DateTime.Now.ToString("yyyyMMddTHHmmss")));
                                }

                                //Grava arquivo de ERRO para o ERP
                                File.WriteAllText(cArqErro, ex.Message, Encoding.Default);
                            }
                            catch { }
                        }
                        ///
                        /// mesmo com erro, adicionar a lista para que o usuário possa altera-la
                        empresa.ChecaCaminhoDiretorio();

                        Configuracoes.Add(empresa);
                    }
#if false
                    arqXml = new FileStream(Propriedade.NomeArqEmpresas, FileMode.Open, FileAccess.Read, FileShare.Read); //Abrir um arquivo XML usando FileStream

                    var xml = new XmlDocument();
                    xml.Load(arqXml);

                    var empresaList = xml.GetElementsByTagName("Empresa");

                    foreach (XmlNode empresaNode in empresaList)
                    {
                        var empresaElemento = (XmlElement)empresaNode;

                        var registroList = xml.GetElementsByTagName(NFe.Components.NFeStrConstants.Registro);

                        for (int i = 0; i < registroList.Count; i++)
                        {
                            Empresa empresa = new Empresa();

                            var registroNode     = registroList[i];
                            var registroElemento = (XmlElement)registroNode;

                            empresa.CNPJ    = registroElemento.GetAttribute(NFe.Components.NFeStrConstants.CNPJ).Trim();
                            empresa.Nome    = registroElemento.GetElementsByTagName(NFe.Components.NFeStrConstants.Nome)[0].InnerText.Trim();
                            empresa.Servico = Propriedade.TipoAplicativo;// TipoAplicativo.Nfe;
                            if (registroElemento.GetAttribute(NFe.Components.NFeStrConstants.Servico) != "")
                            {
                                empresa.Servico = (TipoAplicativo)Convert.ToInt16(registroElemento.GetAttribute(NFe.Components.NFeStrConstants.Servico).Trim());
                            }

                            try
                            {
                                empresa.BuscaConfiguracao();
                            }
                            catch (Exception ex)
                            {
                                ///
                                /// nao acessar o metodo Auxiliar.GravarArqErroERP(string Arquivo, string Erro) já que nela tem a pesquisa da empresa
                                /// com base em "int emp = Empresas.FindEmpresaByThread();" e neste ponto ainda não foi criada
                                /// as thread's
                                string cArqErro;
                                if (string.IsNullOrEmpty(empresa.PastaXmlRetorno))
                                {
                                    cArqErro = Path.Combine(Propriedade.PastaExecutavel, string.Format(Propriedade.NomeArqERRUniNFe, DateTime.Now.ToString("yyyyMMddTHHmmss")));
                                }
                                else
                                {
                                    cArqErro = Path.Combine(empresa.PastaXmlRetorno, string.Format(Propriedade.NomeArqERRUniNFe, DateTime.Now.ToString("yyyyMMddTHHmmss")));
                                }

                                try
                                {
                                    //Grava arquivo de ERRO para o ERP
                                    File.WriteAllText(cArqErro, ex.Message, Encoding.Default);
                                }
                                catch { }
                            }
                            ///
                            /// mesmo com erro, adicionar a lista para que o usuário possa altera-la
                            empresa.ChecaCaminhoDiretorio();

                            Configuracoes.Add(empresa);
                        }
                    }
                    arqXml.Close();
                    arqXml = null;
#endif
                }
                catch
                {
                    throw;
                }
#if false
                finally
                {
                    if (arqXml != null)
                    {
                        arqXml.Close();
                    }
                }
#endif
            }
            if (!ExisteErroDiretorio)
            {
                Empresas.CriarPasta();
            }
        }