public COperationSynchronisationSurAgentSynchronisation( Type typeAgentSynchro, string strParametresAgentSynchro, EOperationSynchronisationSurAgentSynchronisation operation, string strIdElementASynchroniser) { m_typeAgent = typeAgentSynchro; m_strParametresAgentSynchro = strParametresAgentSynchro; m_operation = operation; m_strIdElementASynchroniser = strIdElementASynchroniser; }
//--------------------------------------------------------------------------- public CResultAErreur TraitementApresSauvegarde(CContexteDonnee contexte) { CResultAErreur result = CResultAErreur.True; DataTable table = contexte.Tables[GetNomTable()]; if (table == null) { return(result); } HashSet <DataRow> rowsToSend = table.ExtendedProperties[GetType()] as HashSet <DataRow>; if (rowsToSend == null) { return(result); } CListeObjetsDonnees lstServiceMediation = new CListeObjetsDonnees(contexte, typeof(CSnmpProxyInDb)); HashSet <string> myIps = new HashSet <string>(); System.Net.IPHostEntry moiMeme = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName()); foreach (IPAddress adresse in moiMeme.AddressList) { myIps.Add(adresse.ToString()); } foreach (CSnmpProxyInDb proxy in lstServiceMediation.ToArrayList()) { string strParametresAgent = proxy.AdresseIp; foreach (DataRow row in rowsToSend) { if (DoitMettreAJour(proxy, row)) { EOperationSynchronisationSurAgentSynchronisation typeOperation = EOperationSynchronisationSurAgentSynchronisation.CreateOrUpdate; if (row.RowState == DataRowState.Deleted) { typeOperation = EOperationSynchronisationSurAgentSynchronisation.Delete; } string strId = row[ChampIdDeTypeSynchronise, row.RowState == DataRowState.Deleted ? DataRowVersion.Original : DataRowVersion.Current].ToString(); IOperationSynchronisation operation = new COperationSynchronisationSurAgentSynchronisation( GetType(), strParametresAgent, typeOperation, strId); if (myIps.Contains(proxy.AdresseIp)) { Init(proxy.AdresseIp); result = DoOperation(operation, contexte); if (!result) { return(result); } } else { CSynchroniseurBaseDistante.DefaultInstance.AddOperation(contexte.IdSession, proxy.CleBaseDistante, operation); } } } } table.ExtendedProperties.Remove(GetType()); return(result); }