public static void SalvarXMLMunicipios(string uf, string cidade, int codigomunicipio, string padrao, bool forcaAtualizacao)
{
try
{
if (uf != null)
{
Municipio mun = null;
for (int i = 0; i < Propriedade.Municipios.Count; ++i)
{
if (Propriedade.Municipios[i].CodigoMunicipio == codigomunicipio)
{
mun = Propriedade.Municipios[i];
break;
}
}
if (padrao == PadroesNFSe.NaoIdentificado.ToString() && mun != null)
{
Propriedade.Municipios.Remove(mun);
}
if (padrao != PadroesNFSe.NaoIdentificado.ToString())
{
if (mun != null)
{
///
/// é o mesmo padrão definido?
/// o parametro "forcaAtualizacao" é "true" somente quando vier da aba "Municipios definidos"
/// desde que o datagrid atualiza automaticamente o membro "padrao" da classe "Municipio" quando ele é alterado.
if (mun.PadraoStr == padrao && !forcaAtualizacao)
{
return;
}
mun.Padrao = GetPadraoFromString(padrao);
mun.PadraoStr = padrao;
}
else
{
Propriedade.Municipios.Add(new Municipio(codigomunicipio, uf, cidade.Trim(), GetPadraoFromString(padrao)));
}
}
}
if (System.IO.File.Exists(Propriedade.NomeArqXMLMunicipios))
{
///
/// faz uma copia por segurança
if (System.IO.File.Exists(Propriedade.NomeArqXMLMunicipios + ".bck"))
{
System.IO.File.Delete(Propriedade.NomeArqXMLMunicipios + ".bck");
}
System.IO.File.Copy(Propriedade.NomeArqXMLMunicipios, Propriedade.NomeArqXMLMunicipios + ".bck");
}
/*
* <nfes_municipios>
* <Registro ID="4125506" Nome="São José dos Pinais - PR" Padrao="GINFES" />
* </nfes_municipios>
*/
var xml = new XDocument(new XDeclaration("1.0", "utf-8", null));
XElement elementos = new XElement("nfes_municipios");
var r = (from ss in Propriedade.Municipios orderby ss.Nome select ss);
foreach (Municipio item in r)//Propriedade.Municipios)
{
elementos.Add(new XElement(NFeStrConstants.Registro,
new XAttribute(TpcnResources.ID.ToString(), item.CodigoMunicipio.ToString()),
new XAttribute(NFeStrConstants.Nome, item.Nome.Trim()),
new XAttribute(NFeStrConstants.Padrao, item.PadraoStr)));
}
xml.Add(elementos);
xml.Save(Propriedade.NomeArqXMLMunicipios);
}
catch (Exception ex)
{
//recupera a copia feita se houve erro na criacao do XML de municipios
if (System.IO.File.Exists(Propriedade.NomeArqXMLMunicipios + ".bck"))
{
Functions.Move(Propriedade.NomeArqXMLMunicipios + ".bck", Propriedade.NomeArqXMLMunicipios);
}
throw ex;
}
}