public void SalvarConfiguracao(bool validaCertificado, bool validarConfig)
{
bool empresaNova = false;
try
{
if (Empresas.FindConfEmpresaIndex(this.CNPJ, this.Servico) == -1)
{
empresaNova = true;
Empresas.Configuracoes.Add(this);
}
else
{
int emp = Empresas.FindConfEmpresaIndex(this.CNPJ, this.Servico);
this.CopyObjectTo(Empresas.Configuracoes[emp]);
}
//Criptografar a senha do certificado digital para gravar no XML. Wandrey 23/09/2014
if (validarConfig)
{
new ConfiguracaoApp().ValidarConfig(validaCertificado, this);
}
if (!Directory.Exists(this.PastaEmpresa))
{
Directory.CreateDirectory(this.PastaEmpresa);
}
this.CriarPastasDaEmpresa();
Empresa dados = new Empresa();
this.CopyObjectTo(dados);
if (dados.UsaCertificado)
{
dados.CertificadoSenha = Criptografia.criptografaSenha(dados.CertificadoSenha);
}
dados.CertificadoPIN = Criptografia.criptografaSenha(dados.CertificadoPIN);
dados.FTPNomeDoServidor = Criptografia.criptografaSenha(dados.FTPNomeDoServidor);
dados.FTPNomeDoUsuario = Criptografia.criptografaSenha(dados.FTPNomeDoUsuario);
dados.FTPSenha = Criptografia.criptografaSenha(dados.FTPSenha);
ObjectXMLSerializer objObjectXMLSerializer = new ObjectXMLSerializer();
objObjectXMLSerializer.Save(dados, dados.NomeArquivoConfig);
Empresas.FindConfEmpresa(this.CNPJ, this.Servico).Nome = this.Nome;
}
catch (Exception ex)
{
if (empresaNova)
{
Empresas.Configuracoes.Remove(this);
}
throw ex;
}
}