//---------------------------------------------------- public void UpdateAgentIpFromMediation(string strAgentId, string strNewIp, bool bUpdateTimosDb) { if (bUpdateTimosDb) { AssureSessionEtContexte(); int nIdAgent = -1; if (Int32.TryParse(strAgentId, out nIdAgent) && m_contexteDonnee != null) { using (CContexteDonnee ctxEdit = m_contexteDonnee.GetContexteEdition()) { CAgentSnmp agent = new CAgentSnmp(ctxEdit); if (agent.ReadIfExists(nIdAgent)) { agent.SnmpIp = strNewIp; ctxEdit.EnableTraitementsAvantSauvegarde = false; ctxEdit.EnableTraitementsExternes = false; ctxEdit.CommitEdit(); } } } } }
//------------------------------------------------------------------- /// <summary> /// Fait un traitement global avant sauvegarde pour s'assurer que tous les éléments /// qui imposent une mise à jour de l'agent SNMP ont bien préparé la liste des agents /// à mettre à jour. /// </summary> /// <param name="contexte"></param> /// <param name="tableData"></param> /// <param name="result"></param> public static CResultAErreur CContexteDonneeServeur_DoTraitementExterneAvantSauvegarde(CContexteDonnee contexte, Hashtable tableData) { CResultAErreur result = CResultAErreur.True; HashSet <DataRow> rows = GetTableAgentsAMettreAJourToSnmp(contexte, false); if (rows != null) { foreach (DataRow row in rows) { CAgentSnmp agent = new CAgentSnmp(row); try { if (agent.AutoUpdate) { result = agent.UpdateToSnmpInCurrentContext(true); } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } if (!result) { string strTexte = I.T("Error while update SNMP agent @1|20157", agent.SnmpIp); strTexte += "\r\n"; strTexte += result.Erreur.ToString(); C2iEventLog.WriteErreur(strTexte); } result = CResultAErreur.True; } } DataTable table = contexte.Tables[CAgentSnmp.c_nomTable]; if (table != null) { table.ExtendedProperties.Remove(c_cleDataAgentsAMettreAjour); } return(result); }