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