private static bool LoadArqXMLWebService(string filenameWS, string subfolder)
{
bool salvaXmlLocal = false;
if (File.Exists(filenameWS))
{
XmlDocument doc = new XmlDocument();
doc.Load(filenameWS);
XmlNodeList estadoList = doc.GetElementsByTagName(NFeStrConstants.Estado);
foreach (XmlNode estadoNode in estadoList)
{
XmlElement estadoElemento = (XmlElement)estadoNode;
if (estadoElemento.Attributes.Count > 0)
{
if (estadoElemento.Attributes[TpcnResources.UF.ToString()].Value != "XX")
{
int ID = Convert.ToInt32("0" + Functions.OnlyNumbers(estadoElemento.Attributes[TpcnResources.ID.ToString()].Value));
if (ID == 0)
continue;
string Nome = estadoElemento.Attributes[NFeStrConstants.Nome].Value;
string UF = estadoElemento.Attributes[TpcnResources.UF.ToString()].Value;
/// danasa 1-2012
///
/// verifica se o ID já está na lista
/// isto previne que no xml de configuracao tenha duplicidade e evita derrubar o programa
///
var ci = (from i in webServicesList where i.ID == ID select i).FirstOrDefault();
if (ci == null)
{
webServices wsItem = new webServices(ID, Nome, UF);
XmlNodeList urlList;
urlList = estadoElemento.GetElementsByTagName(NFe.Components.NFeStrConstants.LocalHomologacao);
if (urlList.Count > 0)
PreencheURLw(wsItem.LocalHomologacao,
NFe.Components.NFeStrConstants.LocalHomologacao,
urlList.Item(0).OuterXml,
UF,
subfolder);
urlList = estadoElemento.GetElementsByTagName(NFe.Components.NFeStrConstants.LocalProducao);
if (urlList.Count > 0)
PreencheURLw(wsItem.LocalProducao,
NFe.Components.NFeStrConstants.LocalProducao,
urlList.Item(0).OuterXml,
UF,
subfolder);
webServicesList.Add(wsItem);
}
// danasa 1-2012
if (estadoElemento.HasAttribute(NFeStrConstants.Padrao))
{
try
{
string padrao = estadoElemento.Attributes[NFeStrConstants.Padrao].Value;
if (!padrao.Equals(PadroesNFSe.NaoIdentificado.ToString(), StringComparison.InvariantCultureIgnoreCase))
{
var cc = (from i in Propriedade.Municipios
where i.CodigoMunicipio == ID
select i).FirstOrDefault();
if (cc == null)
{
Propriedade.Municipios.Add(new Municipio(ID, UF, Nome, WebServiceNFSe.GetPadraoFromString(padrao)));
salvaXmlLocal = true;
}
else
{
if (!cc.PadraoStr.Equals(padrao) || !cc.UF.Equals(UF) || !cc.Nome.Equals(Nome, StringComparison.InvariantCultureIgnoreCase))
{
cc.Padrao = WebServiceNFSe.GetPadraoFromString(padrao);
cc.Nome = Nome;
cc.UF = UF;
salvaXmlLocal = true;
}
}
}
}
catch { }
}
// danasa 1-2012
}
}
}
}
return salvaXmlLocal;
}
#endregion