private void NavigateXmlForUpdate(XmlNode rootNode, string idAmm) { try { XmlNodeList nodiRuolo = rootNode.SelectNodes("RUOLO"); // Estrazione dati e nodi sottostanti foreach (XmlNode node in nodiRuolo) { XmlAttribute attribute = node.Attributes["MODE"]; string mode = ""; if (attribute != null) { mode = attribute.InnerText.ToUpper(); } string codice = this.GetXmlField("CODICE", node, false); string descrizione = this.GetXmlField("DESCRIZIONE", node, false); descrizione = DocsPaUtils.Functions.Functions.ReplaceApexes(descrizione); int livello = Int32.Parse(this.GetXmlField("LIVELLO", node, false)); codice = codice.ToUpper(); DocsPaDB.Query_DocsPAWS.AmministrazioneXml amministrazioneXml = new DocsPaDB.Query_DocsPAWS.AmministrazioneXml(); if (mode == "CREATED") { string idRuolo = amministrazioneXml.NewRuolo(idAmm, codice, descrizione, livello); if (idRuolo == null) { throw new Exception(); } } if (mode == "MODIFIED") { if (!amministrazioneXml.UpdateRuolo(idAmm, codice, descrizione, livello)) { throw new Exception(); } } if (mode == "DELETED") { if (!amministrazioneXml.DeleteRuolo(idAmm, codice)) { throw new Exception(); } } } } catch (Exception e) { logger.Debug("Errore durante l'update dei ruoli", e); } }