/// <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);
}
}