//------------------------------------------------------------- public static void ShowMediationInfo(CSnmpProxyInDb proxy) { CFormControleServiceMediation frm = new CFormControleServiceMediation(); frm.m_proxy = proxy; frm.Show(); }
//------------------------------------------------------------ static CResultAErreur CContexteDonneeServeur_DoTraitementExterneApresSauvegarde(CContexteDonnee contexte, Hashtable tableData) { CResultAErreur result = CResultAErreur.True; HashSet <DataRow> proxyAMediationModifiee = contexte.ExtendedProperties[c_cleMediationModifiee] as HashSet <DataRow>; if (proxyAMediationModifiee == null) { return(result); } CSynchroniseurBaseDistante synchro = CSynchroniseurBaseDistante.GetSynchroniseur(contexte.IdSession); foreach (DataRow row in proxyAMediationModifiee) { if (row[CSnmpProxyInDb.c_champSnmpIp] != DBNull.Value) { COperationSynchronisationSurAgentSynchronisation op = new COperationSynchronisationSurAgentSynchronisation( typeof(CNotifieurMiseAJourProxySnmp), row[CSnmpProxyInDb.c_champSnmpIp] + "/" + row[CSnmpProxyInDb.c_champId], EOperationSynchronisationSurAgentSynchronisation.CreateOrUpdate, row[CSnmpProxyInDb.c_champId].ToString()); synchro.AddOperation(contexte.IdSession, row[CSnmpProxyInDb.c_champSnmpIp].ToString(), op); } } HashSet <DataRow> proxyAConfigurationModifee = contexte.ExtendedProperties[c_cleConfigModifiee] as HashSet <DataRow>; HashSet <CSnmpProxyInDb> proxysAMettreAJour = new HashSet <CSnmpProxyInDb>(); foreach (DataRow row in proxyAConfigurationModifee) { CSnmpProxyInDb proxy = new CSnmpProxyInDb(contexte); try{ if (proxy.ReadIfExists((int)row[CSnmpProxyInDb.c_champId])) { FillHashSetProxiesAMettreAJour(proxy, proxysAMettreAJour); } } catch { } } foreach (CSnmpProxyInDb proxy in proxysAMettreAJour) { CSynchroniseurBaseDistante.GetSynchroniseur(contexte.IdSession).AddOperation( contexte.IdSession, proxy.CleBaseDistante, new COperationSynchronisationSurAgentSynchronisation( typeof(CSnmpConfigurationSynchroniseur), proxy.AdresseIp, EOperationSynchronisationSurAgentSynchronisation.CreateOrUpdate, proxy.Id.ToString())); } contexte.ExtendedProperties.Remove(c_cleMediationModifiee); contexte.ExtendedProperties.Remove(c_cleConfigModifiee); return(result); }
private static void FillHashSetProxiesAMettreAJour(CSnmpProxyInDb proxy, HashSet <CSnmpProxyInDb> hs) { if (hs.Contains(proxy)) { return; } hs.Add(proxy); foreach (CLienDeProxy lien in proxy.LiensDeProxySource) { if (!hs.Contains(lien.ProxySource)) { FillHashSetProxiesAMettreAJour(lien.ProxySource, hs); } } }
//---------------------------------------------------------------------------------- public void DoOperationAsynchrone(IOperationSynchronisation operation, int nIdSession) { CSnmpProxyInDb proxy = new CSnmpProxyInDb(CContexteDonneeSysteme.GetInstance()); if (proxy.ReadIfExists(Int32.Parse(operation.IdElementASynchroniser))) { CSnmpProxyConfiguration configurationAEnvoyer = proxy.GetConfiguration(); if (configurationAEnvoyer != null) { CAppeleurFonctionAvecDelai.CallFonctionAvecDelai( GetConnexion(), "CreateUpdateObjet", 1, configurationAEnvoyer); } } }
public CSnmpProxyConfiguration GetConfigurationDeProxy(int nIdProxy) { using (CSessionClient session = CSessionClient.CreateInstance()) { CResultAErreur result = session.OpenSession(new CAuthentificationSessionProcess()); if (!result) { return(null); } using (CContexteDonnee ctx = new CContexteDonnee(session.IdSession, true, false)) { CSnmpProxyInDb proxy = new CSnmpProxyInDb(ctx); if (proxy.ReadIfExists(nIdProxy)) { return(proxy.GetConfiguration()); } } } return(null); }
//------------------------------------------------------------------- public override CResultAErreur VerifieDonnees(CObjetDonnee objet) { CResultAErreur result = CResultAErreur.True; CSnmpProxyInDb proxy = objet as CSnmpProxyInDb; if (proxy != null) { if (proxy.Libelle.Trim() == string.Empty) { result.EmpileErreur(I.T("Proxy label cannot be empty|10020")); } if (proxy.AdresseIp == string.Empty) { result.EmpileErreur(I.T("Proxy IP Address must be defined|10021")); } if (proxy.Port < IPEndPoint.MinPort || proxy.Port > IPEndPoint.MaxPort) { result.EmpileErreur(I.T("Proxy IP Port not valid|10022")); } } return(result); }
//------------------------------------------------------------ public static CResultAErreur CContexteDonneeServeur_DoTraitementExterneAvantSauvegarde(CContexteDonnee contexte, Hashtable tableData) { CResultAErreur result = CResultAErreur.True; HashSet <DataRow> proxyAConfigModifiee = new HashSet <DataRow>(); HashSet <DataRow> proxyAMediationModifee = new HashSet <DataRow>(); bool bAll = false; foreach (DataTable table in new ArrayList(contexte.Tables)) { Type tp = CContexteDonnee.GetTypeForTable(table.TableName); if (typeof(IElementADonneePourMediationSNMP).IsAssignableFrom(tp)) { foreach (DataRow row in table.Rows) { if ( row.RowState == DataRowState.Added || row.RowState == DataRowState.Modified || row.RowState == DataRowState.Deleted) { IElementADonneePourMediationSNMP elt = contexte.GetNewObjetForRow(row) as IElementADonneePourMediationSNMP; if (row.RowState == DataRowState.Deleted) { ((CObjetDonnee)elt).VersionToReturn = DataRowVersion.Original; } try { for (int nPasse = 0; nPasse < 2; nPasse++) { HashSet <DataRow> dataRows = null; int[] elts; if (nPasse == 0) { elts = elt.IdsProxysConcernesParDonneesMediation; dataRows = proxyAMediationModifee; } else { elts = elt.IdsProxysConcernesParConfigurationProxy; dataRows = proxyAConfigModifiee; } if (elts == null) { CListeObjetsDonnees lstProxys = new CListeObjetsDonnees(contexte, typeof(CSnmpProxyInDb)); foreach (CSnmpProxyInDb proxy in lstProxys) { dataRows.Add(proxy.Row.Row); } bAll = true; break; } else { foreach (int nIdProxy in elts) { CSnmpProxyInDb proxy = new CSnmpProxyInDb(contexte); if (proxy.ReadIfExists(nIdProxy)) { dataRows.Add(proxy.Row); } } } } } catch { } } } } if (bAll) { break; } } if (proxyAMediationModifee.Count > 0 || proxyAConfigModifiee.Count > 0) { contexte.ExtendedProperties[c_cleMediationModifiee] = proxyAMediationModifee; contexte.ExtendedProperties[c_cleConfigModifiee] = proxyAConfigModifiee; } return(result); }
//--------------------------------------------------------------------------- public virtual bool DoitMettreAJour(CSnmpProxyInDb proxy, DataRow row) { return(true); }