private void NavigateXmlForUpdate(XmlNode rootNode) { DocsPaUtils.LogsManagement.ProgressLogger pl = DocsPaUtils.LogsManagement.ProgressLogger.getInstance(false); try { /*XmlNode servers= rootNode.SelectSingleNode("SERVERS"); * if(servers!=null) * { * int idMessage=pl.NewMessage("Caricamento Servers di Posta"); * ServerXml serverXml = new ServerXml(); * * if(!serverXml.UpdateStructure(servers)) * { * pl.UpdateMessage(idMessage,null,true,true); * logger.Debug("Errore aggiornamento servers"); * throw new Exception(); * } * pl.UpdateMessage(idMessage,null,true,false); * }*/ // Funzioni XmlNode funzioni = rootNode.SelectSingleNode("TIPIFUNZIONE"); if (funzioni != null) { int idMessage = pl.NewMessage("Caricamento Tipi Funzione"); logger.Debug("Caricamento Tipi Funzione..."); FunzioniXml funzioniXml = new FunzioniXml(); if (!funzioniXml.UpdateStructure(funzioni)) { pl.UpdateMessage(idMessage, null, true, true); logger.Debug("Errore aggiornamento tipi funzione"); throw new Exception(); } pl.UpdateMessage(idMessage, null, true, false); } XmlNodeList nodiAmministrazione = rootNode.SelectNodes("AMMINISTRAZIONE"); // Estrazione dati e nodi sottostanti foreach (XmlNode node in nodiAmministrazione) { XmlNode dati = node.SelectSingleNode("DATI"); if (dati == null) { logger.Debug("Errore mancanza corpo DATI amministrazione"); //logger.DebugAdm(true,"Errore mancanza corpo DATI tag Amministrazione",null); throw new Exception(); } DocsPaDB.Query_DocsPAWS.AmministrazioneXml amministrazioneXml = new DocsPaDB.Query_DocsPAWS.AmministrazioneXml(); string idAmm = ""; string mode = ""; XmlAttribute attribute = node.Attributes["MODE"]; if (attribute != null) { mode = attribute.InnerText.ToUpper(); } string codice = this.GetXmlField("CODICE", dati); string descrizione = this.GetXmlField("DESCRIZIONE", dati); string libreria = this.GetXmlField("LIBRERIA", dati); string segnatura = this.GetXmlField("SEGNATURA", dati); string fascicolatura = this.GetXmlField("FASCICOLATURA", dati); string dominio = this.GetXmlField("DOMINIO", dati); string serversmtp = this.GetXmlField("SERVERSMTP", dati); string portasmtp = this.GetXmlField("PORTASMTP", dati); if (portasmtp == null || portasmtp == "") { portasmtp = "NULL"; } string usersmtp = this.GetXmlField("USERSMTP", dati); string pwdsmtp = this.GetXmlField("PASSWORDSMTP", dati); string protocolloInt = this.GetXmlField("PROTOCOLLO_INTERNO", dati); if (protocolloInt != null && protocolloInt != "") { protocolloInt = "1"; } string ragioneTO = this.GetXmlField("RAGIONE_TO", dati); string ragioneCC = this.GetXmlField("RAGIONE_CC", dati); codice = codice.ToUpper(); descrizione = DocsPaUtils.Functions.Functions.ReplaceApexes(descrizione); int idMessage = pl.NewMessage("Caricamento Amministrazione: " + codice); logger.Debug("Caricamento Amministrazione: " + codice); if (mode == "CREATED") { //aggiunge la nuova amministrazione idAmm = amministrazioneXml.NewAmministrazione(codice, descrizione, libreria, segnatura, fascicolatura, dominio, serversmtp, portasmtp, protocolloInt, ragioneTO, ragioneCC, usersmtp, pwdsmtp); if (idAmm == null) { pl.UpdateMessage(idMessage, null, true, true); logger.Debug("Errore nella creazione nuova amministrazione"); throw new Exception(); } DocsPaDB.Utils.Personalization.Reset(); } else if (mode == "MODIFIED") { //modifica i dati della amministrazione idAmm = amministrazioneXml.GetAdminByName(codice); if (!amministrazioneXml.UpdateAmministrazione(codice, descrizione, libreria, segnatura, fascicolatura, dominio, serversmtp, portasmtp, protocolloInt, ragioneTO, ragioneCC, usersmtp, pwdsmtp)) { pl.UpdateMessage(idMessage, null, true, true); logger.Debug("Errore aggiornamento nuova amministrazione"); throw new Exception(); } DocsPaDB.Utils.Personalization.Reset(); } else if (mode == "DELETED") { //TO DO - > cancellazione della amministrazione } else { //in a4ltri casi (mode="") seleziona l'id idAmm = amministrazioneXml.GetAdminByName(codice); if (idAmm == null) { pl.UpdateMessage(idMessage, null, true, true); logger.Debug("Amministrazione: " + codice + " sconosciuta"); //logger.DebugAdm(true,"Amministrazione: " + codice + " sconosciuta",null); throw new Exception(); } } //si analizza il contenuto della amministrazione solo se non è stata cancellata if (mode != "DELETED") { // Ragioni Trasmissione XmlNode ragioni = node.SelectSingleNode("RAGIONITRASMISSIONE"); if (ragioni != null) { int idMessageAmm = pl.NewMessage("Caricamento Ragioni Trasmissione"); logger.Debug("Caricamento Ragioni Trasmissione..."); RagioniTrasmissioneXml ragioniTrasmissioneXml = new RagioniTrasmissioneXml(); if (!ragioniTrasmissioneXml.UpdateStructure(ragioni, idAmm)) { pl.UpdateMessage(idMessageAmm, null, true, true); logger.Debug("Errore aggiornamento ragioni trasmissione"); throw new Exception(); } pl.UpdateMessage(idMessageAmm, null, true, false); } // Registri XmlNode registri = node.SelectSingleNode("REGISTRI"); if (registri != null) { int idMessageAmm = pl.NewMessage("Caricamento Registri"); logger.Debug("Caricamento Registri..."); RegistriXml registriXml = new RegistriXml(); if (!registriXml.UpdateStructure(registri, idAmm)) { pl.UpdateMessage(idMessageAmm, null, true, true); logger.Debug("Errore aggiornamento registri"); throw new Exception(); } pl.UpdateMessage(idMessageAmm, null, true, false); } // // Funzioni // XmlNode funzioni = node.SelectSingleNode("TIPIFUNZIONE"); // if(funzioni!=null) // { // FunzioniXml funzioniXml = new FunzioniXml(); // // if(!funzioniXml.UpdateStructure(funzioni, idAmm)) // { // logger.Debug("Errore aggiornamento tipi funzione"); // throw new Exception(); // } // } // Tipi Ruolo XmlNode ruoli = node.SelectSingleNode("RUOLI"); if (ruoli != null) { int idMessageAmm = pl.NewMessage("Caricamento Ruoli"); logger.Debug("Caricamento Tipo Ruoli..."); RuoliXml ruoliXml = new RuoliXml(); if (!ruoliXml.UpdateStructure(ruoli, idAmm)) { pl.UpdateMessage(idMessageAmm, null, true, true); logger.Debug("Errore aggiornamento ruoli"); throw new Exception(); } pl.UpdateMessage(idMessageAmm, null, true, false); } // Utenti // XmlNode utenti = node.SelectSingleNode("UTENTI"); // if(utenti!=null) // { // int idMessageAmm=pl.NewMessage("Caricamento Utenti"); // UtentiXml utentiXml = new UtentiXml(); // // if(!utentiXml.UpdateStructure(utenti, idAmm)) // { // pl.UpdateMessage(idMessageAmm,null,true,true); // logger.Debug("Errore aggiornamento utenti"); // throw new Exception(); // } // pl.UpdateMessage(idMessageAmm,null,true,false); // } // Organigramma // XmlNode organigramma = node.SelectSingleNode("ORGANIGRAMMA"); // if(organigramma!=null) // { // int idMessageAmm=pl.NewMessage("Caricamento Organigramma"); // OrganigrammaXml organigrammaXml = new OrganigrammaXml(); // // if(!organigrammaXml.UpdateStructure(organigramma, idAmm)) // { // pl.UpdateMessage(idMessageAmm,null,true,true); // logger.Debug("Errore aggiornamento organigramma"); // throw new Exception(); // } // pl.UpdateMessage(idMessageAmm,null,true,false); // } } pl.UpdateMessage(idMessage, null, true, false); } } catch (Exception e) { logger.Debug("Errore durante la navigazione ricorsiva per aggiornamento", e); } }
/// <summary> /// Procedura per la lettura dell'XML /// </summary> /// <param name="rootNode"></param> private void NavigateXml(XmlNode rootNode) { // Servers /* * XmlNode servers= rootNode.SelectSingleNode("SERVERS"); * * DocsPaUtils.LogsManagement.ImportExportLogger.getInstance("import", 0).SetMessage(1, 10, "Import dei server."); * * if(servers!=null) * { * ServerXml serverXml = new ServerXml(); * * if(!serverXml.CreateStructure(servers)) * { * logger.Debug("Errore creazione servers"); * throw new Exception(); * } * }*/ XmlNodeList nodiAmministrazione = rootNode.SelectNodes("AMMINISTRAZIONE"); // Estrazione dati e nodi sottostanti foreach (XmlNode node in nodiAmministrazione) { DocsPaUtils.LogsManagement.ImportExportLogger.getInstance("import", 0).SetMessage(2, 10, "Creazione amministrazioni."); //legge l'attributo dropAll ed esegue il drop dell'amministrazione se richiesto dropChildren = false; XmlAttribute attribute = node.Attributes["dropAll"]; if (attribute != null) { bool dropAll = Boolean.Parse(attribute.InnerText); if (dropAll) { this.DropAll(); dropChildren = true; } } XmlNode dati = node.SelectSingleNode("DATI"); if (dati == null) { logger.Debug("Errore mancanza corpo DATI amministrazione"); throw new Exception(); } string codice = this.GetXmlField("CODICE", dati); string descrizione = this.GetXmlField("DESCRIZIONE", dati); string libreria = this.GetXmlField("LIBRERIA", dati); string segnatura = this.GetXmlField("SEGNATURA", dati); string fascicolatura = this.GetXmlField("FASCICOLATURA", dati); string dominio = this.GetXmlField("DOMINIO", dati); string serversmtp = this.GetXmlField("SERVERSMTP", dati); string portasmtp = this.GetXmlField("PORTASMTP", dati); string usersmtp = this.GetXmlField("USERSMTP", dati); string pwdsmtp = this.GetXmlField("PASSWORDSMTP", dati); if (portasmtp == null || portasmtp == "") { portasmtp = "NULL"; } string protocolloInt = this.GetXmlField("PROTOCOLLO_INTERNO", dati); if (protocolloInt != null && protocolloInt != "") { protocolloInt = "1"; } string ragioneTO = this.GetXmlField("RAGIONE_TO", dati); string ragioneCC = this.GetXmlField("RAGIONE_CC", dati); codice = codice.ToUpper(); DocsPaUtils.LogsManagement.ImportExportLogger.getInstance("import", 0).SetMessage(3, 10, "Import amministrazione: " + codice); DocsPaDB.Query_DocsPAWS.AmministrazioneXml amministrazioneXml = new DocsPaDB.Query_DocsPAWS.AmministrazioneXml(); string idAmm = amministrazioneXml.NewAmministrazione(codice, descrizione, libreria, segnatura, fascicolatura, dominio, serversmtp, portasmtp, protocolloInt, ragioneTO, ragioneCC, usersmtp, pwdsmtp); if (idAmm == null) { logger.Debug("Errore nella creazione nuova amministrazione"); throw new Exception(); } // Ragioni Trasmissione DocsPaUtils.LogsManagement.ImportExportLogger.getInstance("import", 0).SetMessage(4, 10, "Import ragioni trasmissione dell'amministrazione: " + codice); XmlNode ragioni = node.SelectSingleNode("RAGIONITRASMISSIONE"); RagioniTrasmissioneXml ragioniTrasmissioneXml = new RagioniTrasmissioneXml(); if (!ragioniTrasmissioneXml.CreateStructure(ragioni, idAmm, dropChildren)) { logger.Debug("Errore nella creazione delle ragioni trasmissione"); throw new Exception(); } // Registri DocsPaUtils.LogsManagement.ImportExportLogger.getInstance("import", 0).SetMessage(5, 10, "Import registri dell'amministrazione: " + codice); XmlNode registri = node.SelectSingleNode("REGISTRI"); RegistriXml registriXml = new RegistriXml(); if (!registriXml.CreateStructure(registri, idAmm, dropChildren)) { logger.Debug("Errore nella creazione dei registri"); throw new Exception(); } // Funzioni DocsPaUtils.LogsManagement.ImportExportLogger.getInstance("import", 0).SetMessage(6, 10, "Import funzioni dell'amministrazione: " + codice); XmlNode funzioni = node.SelectSingleNode("TIPIFUNZIONE"); FunzioniXml funzioniXml = new FunzioniXml(); if (!funzioniXml.CreateStructure(funzioni, idAmm, dropChildren)) { logger.Debug("Errore nella creazione dei tipi funzione"); throw new Exception(); } // Tipi Ruolo DocsPaUtils.LogsManagement.ImportExportLogger.getInstance("import", 0).SetMessage(7, 10, "Import tipi ruolo dell'amministrazione: " + codice); XmlNode ruoli = node.SelectSingleNode("RUOLI"); RuoliXml ruoliXml = new RuoliXml(); if (!ruoliXml.CreateStructure(ruoli, idAmm, dropChildren)) { logger.Debug("Errore nella creazione dei ruoli"); throw new Exception(); } // // Utenti // DocsPaUtils.LogsManagement.ImportExportLogger.getInstance("import", 0).SetMessage(8, 10, "Import utenti dell'amministrazione: " + codice); // XmlNode utenti = node.SelectSingleNode("UTENTI"); // UtentiXml utentiXml = new UtentiXml(); // // if(!utentiXml.CreateStructure(utenti, idAmm, dropChildren)) // { // logger.Debug("Errore nella creazione degli utenti"); // throw new Exception(); // } // // // Organigramma // DocsPaUtils.LogsManagement.ImportExportLogger.getInstance("import", 0).SetMessage(9, 10, "Import organigramma dell'amministrazione: " + codice); // XmlNode organigramma = node.SelectSingleNode("ORGANIGRAMMA"); // OrganigrammaXml organigrammaXml = new OrganigrammaXml(); // // if(!organigrammaXml.CreateStructure(organigramma, idAmm, dropChildren)) // { // logger.Debug("Errore nella creazione dell'organigramma"); // throw new Exception(); // } DocsPaUtils.LogsManagement.ImportExportLogger.getInstance("import", 0).SetMessage(10, 10, "Import dell'amministrazione completo"); } }