/////////////////////////////////////////////////////////////// protected override CResultAErreur MyFillFromElementDeGraphe(CElementDeArbreOperationnel element) { CResultAErreur result = CResultAErreur.True; CElementDeArbreOperationnelEntite eltComposant = element as CElementDeArbreOperationnelEntite; if (eltComposant == null) { result.EmpileErreur(I.T("Bad element type|20030")); return(result); } CComposantDeGrapheReseau composant = eltComposant.Composant; IElementDeSchemaReseau eltAssocie = composant.GetElementAssocie(ContexteDonnee); ElementAssocie = null; if (eltAssocie is CSite) { ElementAssocie = CSpvSite.GetObjetSpvFromObjetTimosAvecCreation(eltAssocie as CSite); } else if (eltAssocie is CEquipementLogique) { ElementAssocie = CSpvEquip.GetObjetSpvFromObjetTimosAvecCreation(eltAssocie as CEquipementLogique); } else if (eltAssocie is CLienReseau) { ElementAssocie = CSpvLiai.GetObjetSpvFromObjetTimosAvecCreation(eltAssocie as CLienReseau); } if (ElementAssocie == null) { result.EmpileErreur(I.T("Can not associate element to Graph component|20031")); return(result); } return(result); }
public override sc2i.common.CResultAErreur MyInitChamps() { if (ObjetEdite is CEquipementLogique) { m_spvEquip = CSpvEquip.GetSpvEquipFromEquipement(ObjetEdite as CEquipementLogique) as CSpvEquip; } CResultAErreur result = base.MyInitChamps(); if (!result) { return(result); } if (result && m_spvEquip != null) { m_PanelAlarmPorts.InitFromListeObjets( m_spvEquip.AlarmesCablesBouclesAndTrap, typeof(CSpvLienAccesAlarme), typeof(CFormEditionAccesAlarmeEquipement), m_spvEquip, "SpvEquip"); /* * m_PanelTransmissionPorts.InitFromListeObjets( * m_spvEquip.AccesTransmission, * typeof(CSpvAccesTrans), * typeof(CFormEditionAccesTrans), * m_spvEquip, * "SpvEquip");*/ } return(result); }//MyInitChamps()
public override sc2i.common.CResultAErreur MyInitChamps() { if (ObjetEdite is CEquipementLogique) { m_spvEquip = CSpvEquip.GetSpvEquipFromEquipement(ObjetEdite as CEquipementLogique) as CSpvEquip; } CResultAErreur result = base.MyInitChamps(); if (!result) { return(result); } if (result && m_spvEquip != null) { m_PanelAlarmWiredPorts.InitFromListeObjets( m_spvEquip.AlarmesCablesBoucles, typeof(CSpvLienAccesAlarme), typeof(CFormEditionCablageAccesAlarmeBoucle), m_spvEquip, "SpvEquip"); } return(result); }//MyInitChamps()
private void FillDicsForNode(CElementDeArbreOperationnel node, CDictionnaireElementToNoeudArbre dicEquipementToNoeudArbreOp, CDictionnaireElementToNoeudArbre dicSiteToNoeudArbreOp, CDictionnaireElementToNoeudArbre dicLiaisonToNoeudArbreOp, CDictionnaireElementToNoeudArbre dicServiceToNoeudArbreOp) { CElementDeArbreOperationnelEntite noeudEntite = node as CElementDeArbreOperationnelEntite; if (noeudEntite != null) { try { IElementDeSchemaReseau eltAssocie = noeudEntite.Composant.GetElementAssocie(m_base.ContexteDonnee); if (eltAssocie is CEquipementLogique) { CSpvEquip equipement = CSpvEquip.GetObjetSpvFromObjetTimos((CEquipementLogique)eltAssocie); if (equipement != null) { dicEquipementToNoeudArbreOp.Add(equipement.Id, noeudEntite); } } else if (eltAssocie is CSite) { CSpvSite site = CSpvSite.GetObjetSpvFromObjetTimos((CSite)eltAssocie); if (site != null) { dicSiteToNoeudArbreOp.Add(site.Id, noeudEntite); } } else if (eltAssocie is CLienReseau) { CSpvLiai liaison = CSpvLiai.GetObjetSpvFromObjetTimos((CLienReseau)eltAssocie); if (liaison != null) { dicLiaisonToNoeudArbreOp.Add(liaison.Id, noeudEntite); } } else if (eltAssocie is CSchemaReseau) { CSpvSchemaReseau schema = CSpvSchemaReseau.GetObjetSpvFromObjetTimos((CSchemaReseau)eltAssocie); if (schema != null) { dicServiceToNoeudArbreOp.Add(schema.Id, noeudEntite); } } } catch { } } // Fonction récursive sur les noeuds fils foreach (CElementDeArbreOperationnel nodeFils in node.Fils) { FillDicsForNode(nodeFils, dicEquipementToNoeudArbreOp, dicSiteToNoeudArbreOp, dicLiaisonToNoeudArbreOp, dicServiceToNoeudArbreOp); } }
private void SoitConcernePar(CListeObjetsDonnees lstEquips) { if (m_relationToEquipSpv == null) { foreach (CInfoRelation info in CContexteDonnee.GetListeRelationsTable(CEquipementLogique.c_nomTable)) { if (info.TableParente == CEquipementLogique.c_nomTable && info.TableFille == CSpvEquip.c_nomTable) { m_relationToEquipSpv = info; break; } } } lstEquips.GetDependances(m_relationToEquipSpv).AssureLectureFaite(); foreach (CEquipementLogique eqpt in lstEquips) { CSpvEquip spvEquip = new CSpvEquip(eqpt.ContexteDonnee); if (spvEquip.ReadIfExists(new CFiltreData(CSpvEquip.c_champSmtEquipementLogique_Id + "=@1", eqpt.Id), false)) { m_dicEquipementsSpvConcernant[spvEquip.Id] = true; } } lstEquips = lstEquips.GetDependances("EquipementsLogiquesContenus"); if (lstEquips.Count > 0) { SoitConcernePar(lstEquips); } }
public override sc2i.common.CResultAErreur MyInitChamps() { CResultAErreur result = base.MyInitChamps(); if (!result) { return(result); } if (ObjetEdite is CEquipementLogique) { m_spvEquip = CSpvEquip.GetSpvEquipFromEquipement(ObjetEdite as CEquipementLogique) as CSpvEquip; } else { return(result); } InitListSNMPTables(); result = InitListSnmpVariables(); if (!result) { return(result); } return(result); }
public void MajIpFromEquip(CSpvEquip spvEquip) { this.EquipAddrIP = spvEquip.AdresseIP; this.EquipSNMPIndex = spvEquip.IndexSnmp; this.EquipTrapNom = FormatEquipTrapNom(spvEquip.CommentairePourSituer); this.EquipCommutateur = (spvEquip.PositionCommutateur > 0 ? true : false); }
public CSpvEquip GetSpvEquip(CContexteDonnee contexteDonnee) { CSpvEquip equip = new CSpvEquip(contexteDonnee); if (equip.ReadIfExists(m_nId)) { return(equip); } return(null); }
private sc2i.common.CResultAErreur InitListSNMPTables() { CResultAErreur result = CResultAErreur.True; if (m_spvEquip == null && ObjetEdite is CEquipementLogique) { m_spvEquip = CSpvEquip.GetSpvEquipFromEquipement(ObjetEdite as CEquipementLogique) as CSpvEquip; } if (m_spvEquip == null) { return(result); } List <string> lstNomColonnes = new List <string>(); List <CSpvMibobj> lstSpvMibobj = new List <CSpvMibobj>(); lstNomColonnes.Add(I.T("Name|134")); /* select #l#MIBOBJ_ID, #129S#MIBOBJ_NOM, #l#MIBOBJ_CLASSID, #i#0, #i#127, #l#0 \ * from EQUIP, TYPEQ_MIBMODULE, MIBOBJ \ * where EQUIP_ID = #l#:m_BddId and \ * EQUIP.TYPEQ_ID = TYPEQ_MIBMODULE.TYPEQ_ID and \ * TYPEQ_MIBMODULE.MIBMODULE_ID = MIBOBJ.MIBMODULE_ID and \ * MIBOBJ_TYPE = 'TAB' and MIBOBJ_VISIBLE = 1 \ * order by MIBOBJ_NOM*/ CListeObjetsDonnees objlstMibObj = new CListeObjetsDonnees(m_spvEquip.ContexteDonnee, typeof(CSpvMibobj)); objlstMibObj.Filtre = new CFiltreDataAvance(CSpvMibobj.c_nomTable, "ModuleMib.SpvTypeq_Mibmodules." + CSpvTypeq_Mibmodule.c_champTYPEQ_ID + "= @1 and " + CSpvMibobj.c_champMIBOBJ_TYPE + " = 'TAB' and " + CSpvMibobj.c_champMIBOBJ_VISIBLE + " = 1 ", m_spvEquip.TypeEquipement.Id); objlstMibObj.Tri = CSpvMibobj.c_champMIBOBJ_NOM; foreach (CSpvMibobj mibobj in objlstMibObj) { lstSpvMibobj.Add(mibobj); } m_lstTables.Init(lstNomColonnes.ToArray(), lstSpvMibobj.ToArray()); if (m_lstTables.Columns.Count > 0) { int width = (int)((m_lstTables.Width - 4) / m_lstTables.Columns.Count); foreach (ColumnHeader header in m_lstTables.Columns) { header.Width = width; } } return(result); }
private sc2i.common.CResultAErreur InitListSnmpVariables() { CResultAErreur result = CResultAErreur.True; if (m_spvEquip == null && ObjetEdite is CEquipementLogique) { m_spvEquip = CSpvEquip.GetSpvEquipFromEquipement(ObjetEdite as CEquipementLogique) as CSpvEquip; } if (m_spvEquip == null) { return(result); } List <string> lstNomColonnes = new List <string>(); List <CSpvMibobj> lstSpvMibobj; lstNomColonnes.Add("OID"); lstNomColonnes.Add(I.T("Name|134")); lstNomColonnes.Add(I.T("Value|60029")); // "select #l#MIBMODULE_ID from EQUIP, TYPEQ_MIBMODULE \ // where EQUIP_ID = #l#:Id and \ // EQUIP.TYPEQ_ID = TYPEQ_MIBMODULE.TYPEQ_ID" // "select #129S#MIBOBJ_NOM, #257S#MIBOBJ_OID from MIBOBJ \ // where MIBMODULE_ID = #l#:Id and \ // MIBOBJ_TYPE = 'VS' and \ // MIBOBJ_VISIBLE = 1" CListeObjetsDonnees lstMibObj = new CListeObjetsDonnees(m_spvEquip.ContexteDonnee, typeof(CSpvMibobj)); lstMibObj.Filtre = new CFiltreDataAvance(CSpvMibobj.c_nomTable, "ModuleMib.SpvTypeq_Mibmodules." + CSpvTypeq_Mibmodule.c_champTYPEQ_ID + "= @1 and " + CSpvMibobj.c_champMIBOBJ_TYPE + " = 'VS' and " + CSpvMibobj.c_champMIBOBJ_VISIBLE + " = 1 ", m_spvEquip.TypeEquipement.Id); lstSpvMibobj = FillListMibobjToDisplay(lstMibObj); m_listSnmpValues.Init(lstNomColonnes.ToArray(), lstSpvMibobj.ToArray()); if (m_listSnmpValues.Columns.Count > 0) { int width = (int)((m_listSnmpValues.Width - 4) / m_listSnmpValues.Columns.Count); foreach (ColumnHeader header in m_listSnmpValues.Columns) { header.Width = width; } } return(result); }
public static bool RefreshFromSNMP(object obj) { CEquipementLogique eqpt = obj as CEquipementLogique; if (eqpt == null) { return(false); } CSpvEquip eqptSpv = CSpvEquip.GetObjetSpvFromObjetTimos(eqpt); if (eqptSpv == null) { return(false); } string strIP = eqptSpv.AdresseIP; string strCommunaute = eqptSpv.CommunauteSnmp; CChampCustom[] lstChamps = eqpt.TousLesChamps; string strOldContexteModif = eqpt.ContexteDonnee.IdModificationContextuelle;; eqpt.ContexteDonnee.IdModificationContextuelle = CSpvChampCustomSNMP.c_contexteModificationRefreshFromSNMP; IRequeteSNMPServeur requeteurServeur = C2iFactory.GetNewObjetForSession("CRequeteSNMPServeur", typeof(IRequeteSNMPServeur), eqpt.ContexteDonnee.IdSession) as IRequeteSNMPServeur; foreach (CChampCustom champ in lstChamps) { CSpvChampCustomSNMP champSNMP = CSpvChampCustomSNMP.GetObjetSpvFromObjetTimos(champ); if (champSNMP != null && champSNMP.OID != null && champSNMP.OID.Length > 0 && champSNMP.FormuleIndex != null) { CContexteEvaluationExpression ctxFormule = new CContexteEvaluationExpression(eqpt); CResultAErreur result = champSNMP.FormuleIndex.Eval(ctxFormule); if (result) { try { int nIndex = Convert.ToInt32(result.Data); string strOid = champSNMP.OID + "." + nIndex.ToString(); CRequeteSnmpOID requete = new CRequeteSnmpOID(strIP, strCommunaute, strOid); result = requeteurServeur.GetValue(requete); if (result) { eqpt.SetValeurChamp(champ, result.Data); } } catch {} } } } eqpt.ContexteDonnee.IdModificationContextuelle = strOldContexteModif; return(true); }
/////////////////////////////////////////////////////////////// public override CResultAErreur VerifieDonnees(CObjetDonnee objet) { CResultAErreur result = CResultAErreur.True; try { //TODO : Insérer la logique de vérification de donnée // Saisie obligatoire de l'un des éléments de coordonnées CSpvEquip spvEquip = objet as CSpvEquip; if (spvEquip.CommentairePourSituer == null && spvEquip.Reference == null && spvEquip.AdresseIP == null) { throw new Exception(I.T("Mandatory supervision fields : Comment or Subrack or reference or IP Address |4")); } // Si le type d'équipement est EQUIP MEDIATION (type système) if (spvEquip.TypeEquipement.Id == CSpvTypeq.c_TypeEquipMediationId) { if (spvEquip.IndexSnmp == null || spvEquip.IndexSnmp.Length == 0) { throw new Exception(I.T("Snmp index field should be filled when equipement type is @1|50014", CSpvTypeq.c_strTypeEquipMediation)); } int nIndex = Convert.ToInt32(spvEquip.IndexSnmp); if (nIndex < CSpvEquip.c_nMinSnmpIndexMediation || nIndex > CSpvEquip.c_nMaxSnmpIndexMediation) { throw new Exception(I.T("Snmp index should be between @1 and @2 when equipment type is @3|50015", CSpvTypeq.c_strTypeEquipMediation, CSpvEquip.c_nMinSnmpIndexMediation.ToString(), CSpvEquip.c_nMaxSnmpIndexMediation.ToString())); } int nPos = spvEquip.CommentairePourSituer.IndexOf('/'); if (nPos < 0) { throw new Exception(I.T("For equipment type EQUIP MEDIATION, equipement label should be like 'mediation_name/service_name'|50016")); } } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }
// public void CopyFromLienReseau(CLienReseau lienReseau) public override void CopyFromObjetTimos(CLienReseau lienReseau) { CResultAErreur result = CanSupervise(lienReseau); if (!result) { throw new CExceptionErreur(result.Erreur); } NomTypeLiaison = lienReseau.TypeLienReseau.Libelle; Typeliaison = CSpvTypliai.GetObjetSpvFromObjetTimos(lienReseau.TypeLienReseau) as CSpvTypliai; if (lienReseau.Site1 != null) { SiteOrigine = CSpvSite.GetObjetSpvFromObjetTimosAvecCreation(lienReseau.Site1); } if (lienReseau.Site2 != null) { SiteDestination = CSpvSite.GetObjetSpvFromObjetTimosAvecCreation(lienReseau.Site2); } if (lienReseau.Equipement1 != null) { EquipementOrigine = CSpvEquip.GetObjetSpvFromObjetTimosAvecCreation(lienReseau.Equipement1); } if (lienReseau.Equipement2 != null) { EquipementDestination = CSpvEquip.GetObjetSpvFromObjetTimosAvecCreation(lienReseau.Equipement2); } result = UpdateMasquagesEquipements(); NomLiaison = lienReseau.Libelle; switch (lienReseau.Direction.Code) { case EDirectionLienReseau.UnVersDeux: Direction = new CSensLiaison(ESensLiaison.AVersB); break; case EDirectionLienReseau.DeuxVersUn: Direction = new CSensLiaison(ESensLiaison.BVersA); break; } /*UpdateSupportants(); * UpdateSupportés();*/ }
private static CSpvEquip GetSpvEquip(DataRow row) { CSpvEquip spvEquip; CEquipementLogique equipement = new CEquipementLogique(row); if (equipement.Site != null) { spvEquip = CSpvEquip.GetSpvEquipFromEquipement(equipement) as CSpvEquip; if (spvEquip == null) { spvEquip = CSpvEquip.GetSpvEquipFromEquipementAvecCreation(equipement); } spvEquip.CopyFromObjetTimos(equipement); return(spvEquip); } return(null); }
void OnRowUpdated(object sender, OracleRowUpdatedEventArgs e) { if (e.StatementType == StatementType.Insert || e.StatementType == StatementType.Update) { C2iOracleDataAdapter adapter = sender as C2iOracleDataAdapter; CSpvEquip equipement = new CSpvEquip(e.Row); bool bSuperviser = equipement.ASuperviser; if (e.StatementType == StatementType.Insert || e.Row[CSpvEquip.c_champEQUIP_TOSURV] != e.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original]) { int nValeurMasquage = bSuperviser ? 0 : 2; OracleCommand cmd = e.Command.Connection.CreateCommand(); cmd.Transaction = e.Command.Transaction; cmd.CommandText = "Begin SetMaskAdmEquip(" + equipement.Id + "," + nValeurMasquage + "); end;"; cmd.ExecuteScalar(); } } }
internal override void InitFromElementDeSchema(CElementDeSchemaReseau elementDeSchema) { base.InitFromElementDeSchema(elementDeSchema); CEquipementLogique eqtLogique = elementDeSchema.EquipementLogique; if (eqtLogique == null) //Ca ne doit jamais arriver { throw new Exception("Bad element for supervision data "); } CSpvEquip equip = CSpvEquip.GetObjetSpvFromObjetTimos(eqtLogique); if (equip != null) { m_dicEquipementsSpvConcernant[equip.Id] = true; m_nIdEquipementSpv = equip.Id; } CDonneeDessinElementDeSchemaReseau donneeDessin = elementDeSchema.DonneeDessin as CDonneeDessinElementDeSchemaReseau; if (donneeDessin != null && donneeDessin.CollectChildsAlarms) { SoitConcernePar(eqtLogique.EquipementsLogiquesContenus); } }
public override sc2i.common.CResultAErreur MyInitChamps() { if (ObjetEdite is CEquipementLogique) { m_spvEquip = CSpvEquip.GetSpvEquipFromEquipement(ObjetEdite as CEquipementLogique) as CSpvEquip; } CResultAErreur result = base.MyInitChamps(); if (!result) { return(result); } if (result && m_spvEquip != null) { m_txtBoxIPAddress.Text = m_spvEquip.AdresseIP; m_txtBoxSnmpIndex.Text = m_spvEquip.IndexSnmp; m_txtBoxSnmpCommunity.Text = m_spvEquip.CommunauteSnmp; m_txtBoxEquiptTypeSnmpReference.Text = m_spvEquip.ReferenceSnmpTypeEquipement; m_txtBoxMediationEquipment.Text = m_spvEquip.EquipementDeMediation; m_chkToRediscover.Checked = m_spvEquip.ARedecouvrirPeriodiquement; m_chkToSurv.Checked = m_spvEquip.ASuperviser; } else { m_txtBoxIPAddress.Text = ""; m_txtBoxSnmpIndex.Text = ""; m_txtBoxSnmpCommunity.Text = ""; m_txtBoxEquiptTypeSnmpReference.Text = ""; m_txtBoxMediationEquipment.Text = ""; m_chkToRediscover.Checked = false; m_chkToSurv.Checked = false; } return(result); }
public override CResultAErreur TraitementApresSauvegarde(CContexteDonnee contexte, bool bOperationReussie) { CResultAErreur result = base.TraitementApresSauvegarde(contexte, bOperationReussie); if (!result) { return(result); } DataTable table = contexte.Tables[GetNomTable()]; if (table == null) { return(result); } List <DataRow> lstCrees = (List <DataRow>)table.ExtendedProperties[CDivers.c_cleRowCrees]; if (lstCrees == null) { return(result); } foreach (DataRow row in lstCrees) { CSpvEquip spvEquip = new CSpvEquip(row); if (spvEquip.ASuperviser) { // Création du message dans MessEm CSpvMessem spvMessem = new CSpvMessem(spvEquip.ContexteDonnee); spvMessem.CreateNewInCurrentContexte(); spvMessem.FormatMessCreEquip(spvEquip.Id); } } return(result); }
public override sc2i.common.CResultAErreur MyMajChamps() { CResultAErreur result = base.MyMajChamps(); if (!result) { return(result); } if (Equipement != null && m_spvEquip == null && m_extModeEdition.ModeEdition) { m_spvEquip = CSpvEquip.GetSpvEquipFromEquipementAvecCreation(Equipement); } m_spvEquip.AdresseIP = m_txtBoxIPAddress.Text; m_spvEquip.IndexSnmp = m_txtBoxSnmpIndex.Text; m_spvEquip.CommunauteSnmp = m_txtBoxSnmpCommunity.Text; m_spvEquip.ReferenceSnmpTypeEquipement = m_txtBoxEquiptTypeSnmpReference.Text; m_spvEquip.EquipementDeMediation = m_txtBoxMediationEquipment.Text; m_spvEquip.ARedecouvrirPeriodiquement = m_chkToRediscover.Checked; m_spvEquip.ASuperviser = m_chkToSurv.Checked; return(result); }
//////////////////////////////////////////////////////////////////// public static void PropagerCEquipement(CContexteDonnee contexte, Hashtable tableData, ref CResultAErreur result) { // Traitement CEquipementLogique DataTable dt = contexte.Tables[CEquipementLogique.c_nomTable]; if (dt != null) { ArrayList rows = new ArrayList(dt.Rows); CSpvEquip spvEquip; foreach (DataRow row in rows) { if (row.RowState != DataRowState.Unchanged) { switch (row.RowState) { case DataRowState.Added: case DataRowState.Modified: spvEquip = CSpvEquipServeur.GetSpvEquip(row); if (spvEquip == null) { continue; } break; default: break; } } } //foreach (DataRow row in rows) } // if (dt != null) // Traitement CSpvEquip DataTable table = contexte.Tables[CSpvEquip.c_nomTable]; if (table == null) { return; } List <DataRow> lstCrees = (List <DataRow>)table.ExtendedProperties[CDivers.c_cleRowCrees]; if (lstCrees != null) { table.ExtendedProperties.Clear(); } lstCrees = new List <DataRow>(); ArrayList lstRows = new System.Collections.ArrayList(table.Rows); foreach (DataRow row in lstRows) { // Stockage temporaire des enregistrements dans une liste // pour traitement dans AfterSave (messages pour // EmessEM). Car à ce niveau, on ne dispose pas de l'ID de l'équipement CSpvEquip spvEquip; if (row.RowState == DataRowState.Added) { spvEquip = new CSpvEquip(row); if (spvEquip.ASuperviser) { lstCrees.Add(row); } spvEquip.TraitementMetier(row.RowState); } else if (row.RowState == DataRowState.Modified) { spvEquip = new CSpvEquip(row); spvEquip.TraitementMetier(row.RowState); if (((bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original] == true && !spvEquip.ASuperviser) || ( (bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original] == true && spvEquip.ASuperviser && ( spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP, DataRowVersion.Original] != spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP] || ( spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME, DataRowVersion.Original] != spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME])))) { // Message pour EmessEM CSpvMessem spvMessem = new CSpvMessem(spvEquip.ContexteDonnee); spvMessem.CreateNewInCurrentContexte(); spvMessem.FormatMessDelEquip(spvEquip.Id, (string)spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP, DataRowVersion.Original], (string)spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME, DataRowVersion.Original], spvEquip.ASuperviser); } if (((bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original] == false && spvEquip.ASuperviser) || ( (bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original] == true && spvEquip.ASuperviser && ( spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP, DataRowVersion.Original] != spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP] || ( spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME, DataRowVersion.Original] != spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME])))) { // Message pour EmessEM CSpvMessem spvMessem = new CSpvMessem(spvEquip.ContexteDonnee); spvMessem.CreateNewInCurrentContexte(); spvMessem.FormatMessCreEquip(spvEquip.Id); } } else if (row.RowState == DataRowState.Deleted) { spvEquip = new CSpvEquip(row); if ((bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original] == true) { // Message pour EmessEM CSpvMessem spvMessem = new CSpvMessem(spvEquip.ContexteDonnee); spvMessem.CreateNewInCurrentContexte(); spvMessem.FormatMessDelEquip( (Int32)spvEquip.Row[CSpvEquip.c_champEQUIP_ID, DataRowVersion.Original], (string)spvEquip.Row[CSpvEquip.c_champEQUIP_ADDRIP, DataRowVersion.Original], (string)spvEquip.Row[CSpvEquip.c_champEQUIP_EMNAME, DataRowVersion.Original], (bool)spvEquip.Row[CSpvEquip.c_champEQUIP_TOSURV, DataRowVersion.Original]); } if ((string)spvEquip.Row[CSpvEquip.c_champTYPEQ_NOM, DataRowVersion.Original] == CSpvTypeq.c_strTypeEquipMediation) { spvEquip.SuppressionTestEM( (string)spvEquip.Row[CSpvEquip.c_champSITE_EQUIP_COMMENT, DataRowVersion.Original], (string)spvEquip.Row[CSpvEquip.c_champEQUIP_INDEXSNMP, DataRowVersion.Original]); CSpvTestem testEM = new CSpvTestem(spvEquip.ContexteDonnee); } } } table.ExtendedProperties.Add(CDivers.c_cleRowCrees, lstCrees); }
//----------------------------------------- public CResultAErreur PropageMasquage() { CResultAErreur result = CResultAErreur.True; //STEF 20/10/2010, le masquage est à revoir, il crée des boucles infinies. //c'est notamment à cause des boucles, qui ne peuvent pas être gerées par le masquage. //Il faut travailler sur un masquage au niveau service ! return(result); CSpvEquip masquant = EquipementMasquant; CSpvEquip masqué = EquipementMasque; //Recherche tout ce que masque le masqué CListeObjetsDonnees listeMasqués = new CListeObjetsDonnees(ContexteDonnee, typeof(CSpvEquip_Msk)); listeMasqués.Filtre = new CFiltreData(c_champEQUIP_MASQUANT_ID + "=@1", masqué.Id); foreach (CSpvEquip_Msk mskExistant in listeMasqués) { //Trouve le masquage entre le masquant et le masqué du masqué CSpvEquip_Msk msk = new CSpvEquip_Msk(ContexteDonnee); if (!msk.ReadIfExists(new CFiltreData( c_champEQUIP_MASQUANT_ID + "=@1 and " + CSpvEquip_Msk.c_champEQUIP_MASQUE_ID + "=@2", masquant.Id, mskExistant.EquipementMasque.Id))) { //Stef 11/10/2010 : Evite le masquage de boucle : si le masquant est masqué par le //masqué, on ne crée pas CSpvEquip_Msk mskTmp = new CSpvEquip_Msk(ContexteDonnee); if (!mskTmp.ReadIfExists(new CFiltreData( c_champEQUIP_MASQUANT_ID + "=@1 and " + CSpvEquip_Msk.c_champEQUIP_MASQUE_ID + "=@2", mskExistant.EquipementMasquant.Id, masquant.Id))) { msk.CreateNewInCurrentContexte(); msk.EquipementMasquant = masquant; msk.EquipementMasque = mskExistant.EquipementMasque; msk.PropageMasquage(); } else { msk = null; } } if (msk != null) { //S'assure que je suis bien source du masquage CListeObjetsDonnees sources = msk.Sources; sources.Filtre = new CFiltreData( CSpvEquip_Msk_Source.c_champMasquageParent1 + "=@1 and " + CSpvEquip_Msk_Source.c_champMasquageParent2 + "=@2", Id, mskExistant.Id); if (sources.Count == 0) { CSpvEquip_Msk_Source source = new CSpvEquip_Msk_Source(ContexteDonnee); source.CreateNewInCurrentContexte(); source.Equip_Msk = msk; source.Equip_MskSource1 = this; source.Equip_MskSource2 = mskExistant; } } } //Recherche tout ce qui masque le masquant CListeObjetsDonnees listeMasquants = new CListeObjetsDonnees(ContexteDonnee, typeof(CSpvEquip_Msk)); listeMasquants.Filtre = new CFiltreData( c_champEQUIP_MASQUE_ID + "=@1", masquant.Id); foreach (CSpvEquip_Msk mskExistant in listeMasquants) { //Trouve le masquage entre le masquant du masquant et le masqué CSpvEquip_Msk msk = new CSpvEquip_Msk(ContexteDonnee); if (!msk.ReadIfExists(new CFiltreData( c_champEQUIP_MASQUANT_ID + "=@1 and " + c_champEQUIP_MASQUE_ID + "=@2", mskExistant.EquipementMasquant.Id, masqué.Id))) { //Stef 11/10/2010 : Evite le masquage de boucle : si le masquant est masqué par le //masqué, on ne crée pas CSpvEquip_Msk mskTmp = new CSpvEquip_Msk(ContexteDonnee); if (!mskTmp.ReadIfExists(new CFiltreData( c_champEQUIP_MASQUANT_ID + "=@1 and " + CSpvEquip_Msk.c_champEQUIP_MASQUE_ID + "=@2", masquant.Id, mskExistant.EquipementMasquant.Id))) { //Crée le masquage msk.CreateNewInCurrentContexte(); msk.EquipementMasquant = mskExistant.EquipementMasquant; msk.EquipementMasque = masqué; msk.PropageMasquage(); } else { msk = null; } } if (msk != null) { //S'assure que je suis bien source du masquage CListeObjetsDonnees sources = msk.Sources; sources.Filtre = new CFiltreData( CSpvEquip_Msk_Source.c_champMasquageParent1 + "=@1 and " + CSpvEquip_Msk_Source.c_champMasquageParent2 + "=@2", mskExistant.Id, Id); if (sources.Count == 0) { //Crée la source CSpvEquip_Msk_Source source = new CSpvEquip_Msk_Source(ContexteDonnee); source.CreateNewInCurrentContexte(); source.Equip_Msk = msk; source.Equip_MskSource1 = mskExistant; source.Equip_MskSource2 = this; } } } return(result); }
////////////////////////////////////////////////////////////////// public static void ModificationsSNMP( CContexteDonnee contexte, Hashtable tableData, ref CResultAErreur result) { if (!result) { return; } DataTable table = contexte.Tables[CRelationEquipementLogique_ChampCustom.c_nomTable]; if (table == null) { return; } ArrayList lst = new ArrayList(table.Rows); IRequeteSNMPServeur requeteurServeur = null; foreach (DataRow row in lst) { if (row.RowState == DataRowState.Modified || row.RowState == DataRowState.Added) { if (row[CObjetDonnee.c_champContexteModification] == DBNull.Value || (string)row[CObjetDonnee.c_champContexteModification] != CSpvChampCustomSNMP.c_contexteModificationRefreshFromSNMP) { CRelationEquipementLogique_ChampCustom relChamp = new CRelationEquipementLogique_ChampCustom(row); CSpvChampCustomSNMP champSNMP = new CSpvChampCustomSNMP(contexte); if (champSNMP.ReadIfExists(new CFiltreData(CSpvChampCustomSNMP.c_champIdChampCustomTimos + "=@1", (int)row[CChampCustom.c_champId]))) { if (!champSNMP.GetOnly) { CSpvEquip eqptSpv = new CSpvEquip(contexte); if (eqptSpv.ReadIfExists(new CFiltreData(CSpvEquip.c_champSmtEquipementLogique_Id + "=@1", row[CEquipementLogique.c_champId]))) { string strIP = eqptSpv.AdresseIP; string strCommunaute = eqptSpv.CommunauteSnmp; if (requeteurServeur == null) { requeteurServeur = C2iFactory.GetNewObjetForSession("CRequeteSNMPServeur", typeof(IRequeteSNMPServeur), eqptSpv.ContexteDonnee.IdSession) as IRequeteSNMPServeur; } if (champSNMP != null && champSNMP.OID != null && champSNMP.OID.Length > 0 && champSNMP.FormuleIndex != null) { CContexteEvaluationExpression ctxFormule = new CContexteEvaluationExpression(relChamp.ElementAChamps); CResultAErreur resTmp = champSNMP.FormuleIndex.Eval(ctxFormule); if (resTmp) { try { int nIndex = Convert.ToInt32(result.Data); string strOid = champSNMP.OID + "." + nIndex.ToString(); CRequeteSnmpOID requete = new CRequeteSnmpOID(strIP, strCommunaute, strOid); requeteurServeur.SetValue(requete, relChamp.Valeur); } catch { } } } } } } } } } }
internal override void InitFromElementDeSchema(CElementDeSchemaReseau elementDeSchema) { base.InitFromElementDeSchema(elementDeSchema); CLienReseau lien = elementDeSchema.LienReseau; if (lien == null) { throw new Exception("Bad element for supervision data "); } m_nIdLienSmt = lien.Id; CSpvLiai liaisonSpv = CSpvLiai.GetObjetSpvFromObjetTimos(lien); if (liaisonSpv != null) { m_dicLiaisonsSpvConcernant[liaisonSpv.Id] = true; m_nIdLienSpv = liaisonSpv.Id; } /* */ CSchemaReseau schemaDeLiaison = lien.SchemaReseau; if (schemaDeLiaison != null) { CInfoSchemaDeSchemaSupervise info = new CInfoSchemaDeSchemaSupervise(this, null, m_base, NiveauProfondeur + 1); m_listeFils.Add(info); info.InitFromSchema(schemaDeLiaison); } //Si pas de schéma ou que le schéma ne contient pas les sites bool bHasElement1 = false; bool bHasElement2 = false; IElementALiensReseau elt1 = lien.Element1; IElementALiensReseau elt2 = lien.Element2; if (schemaDeLiaison != null) { foreach (CElementDeSchemaReseau elt in schemaDeLiaison.ElementsDeSchema) { IElementALiensReseau eltAssocie = elt.ElementAssocie as IElementALiensReseau; if (eltAssocie != null && eltAssocie.Equals(elt1)) { bHasElement1 = true; } if (eltAssocie != null && eltAssocie.Equals(elt2)) { bHasElement2 = true; } if (bHasElement1 && bHasElement2) { break; } } } CSpvSite site = new CSpvSite(m_base.ContexteDonnee); CSpvEquip equip = new CSpvEquip(m_base.ContexteDonnee); if (!bHasElement1) { if (elt1 is CSite) { if (site.ReadIfExists(new CFiltreData(CSpvSite.c_champSmtSite_Id + "=@1", elt1.Id), false)) { m_dicSitesSpvConcernant[site.Id] = true; } } else if (elt1 is CEquipementLogique) { if (equip.ReadIfExists(new CFiltreData(CSpvEquip.c_champSmtEquipementLogique_Id + "=@1", elt1.Id), false)) { m_dicEquipementsSpvConcernant[equip.Id] = true; } } } if (!bHasElement2) { if (elt2 is CSite) { if (site.ReadIfExists(new CFiltreData(CSpvSite.c_champSmtSite_Id + "=@1", elt2.Id), false)) { m_dicSitesSpvConcernant[site.Id] = true; } } else if (elt2 is CEquipementLogique) { if (equip.ReadIfExists(new CFiltreData(CSpvEquip.c_champSmtEquipementLogique_Id + "=@1", elt2.Id), false)) { m_dicEquipementsSpvConcernant[equip.Id] = true; } } } }
public bool FormatMessAccesAlarme(CSpvLienAccesAlarme spvLienAccesAlarme, DataRowState rowState) { Int32 nIdTypeCARTE_GTR = 0, nIdTypeIP2PORT = 0, nIdTypeGSITE = 0; string strCategorieObjet = ""; Int32 nIdObjet = 0; bool bEquipToSurv = false; string strCodeSaisie; string strAddrIP; if (rowState == DataRowState.Added) { strCodeSaisie = "C"; } else if (rowState == DataRowState.Modified) { strCodeSaisie = "M"; } else if (rowState == DataRowState.Deleted) { strCodeSaisie = "S"; } else { throw new Exception(I.T("DataRowState not provided for this function|50010")); } CSpvTypeq spvTypeq = new CSpvTypeq(ContexteDonnee); if (spvTypeq.ReadIfExists(new CFiltreData(CSpvTypeq.c_champTYPEQ_NOM + "=@1", CSpvTypeq.c_CARTE_GTR))) { nIdTypeCARTE_GTR = spvTypeq.Id; } if (spvTypeq.ReadIfExists(new CFiltreData(CSpvTypeq.c_champTYPEQ_NOM + "=@1", CSpvTypeq.c_GSITE))) { nIdTypeGSITE = spvTypeq.Id; } if (spvTypeq.ReadIfExists(new CFiltreData(CSpvTypeq.c_champTYPEQ_NOM + "=@1", CSpvTypeq.c_IP2PORT))) { nIdTypeIP2PORT = spvTypeq.Id; } CSpvAccesAlarme accesOne, accesTwo; accesOne = spvLienAccesAlarme.AccesAlarmeOne; accesTwo = spvLienAccesAlarme.AccesAlarmeTwo; CSpvEquip spvEqt = spvLienAccesAlarme.SpvEquip; CSpvSite spvSite = spvLienAccesAlarme.SpvSite; CSpvLiai spvLiai = spvLienAccesAlarme.SpvLiai; if (rowState == DataRowState.Deleted) { if (accesOne.Row.RowState == DataRowState.Deleted) { accesOne.VersionToReturn = DataRowVersion.Original; } if (accesTwo.Row.RowState == DataRowState.Deleted) { accesTwo.VersionToReturn = DataRowVersion.Original; } if (spvEqt != null && spvEqt.Row.RowState == DataRowState.Deleted) { spvEqt.VersionToReturn = DataRowVersion.Original; } if (spvSite != null && spvSite.Row.RowState == DataRowState.Deleted) { spvSite.VersionToReturn = DataRowVersion.Original; } if (spvLiai != null && spvLiai.Row.RowState == DataRowState.Deleted) { spvLiai.VersionToReturn = DataRowVersion.Original; } } if (accesOne == spvLienAccesAlarme.SpvAccesAlarmeSysteme0()) { // Dans ce cas, seul le cas GSITE nous intéresse CSpvEquip spvEquip = new CSpvEquip(ContexteDonnee); if (spvEquip.ReadIfExists(new CFiltreData(CSpvEquip.c_champEQUIP_ID + "=@1", spvLienAccesAlarme.BindingId))) { if (spvEquip.TypeEquipement.Id != nIdTypeGSITE) { return(false); } else { bEquipToSurv = spvEquip.ASuperviser; } } } else { if (spvSite != null) { strCategorieObjet = c_SITE; nIdObjet = spvSite.Id; bEquipToSurv = true; } else if (spvLiai != null) { strCategorieObjet = c_LIAISON; nIdObjet = spvLiai.Id; bEquipToSurv = true; } else if (spvEqt != null) { strCategorieObjet = c_EQUIP; nIdObjet = spvEqt.Id; bEquipToSurv = spvEqt.ASuperviser; strAddrIP = spvEqt.AdresseIP; } else { throw new Exception(I.T("Father object not filled|50009")); } } if (!bEquipToSurv) { return(false); } string strMess = ""; if (accesOne == spvLienAccesAlarme.SpvAccesAlarmeSysteme0()) { // Concerne un accès alarme GSITE if (rowState == DataRowState.Deleted) { strMess = string.Format("#9#7#5#S#{0}#{1}#", spvLienAccesAlarme.BindingId, spvEqt.CommentairePourSituer); } else { strMess = string.Format("#9#11#5#{0}#{1}#{2}#{3}#{4}#{5}#{6}#", strCodeSaisie, spvLienAccesAlarme.BindingId, spvEqt.CommentairePourSituer, spvLienAccesAlarme.DureeMin, spvLienAccesAlarme.FreqNb, spvLienAccesAlarme.FreqPeriod, System.Convert.ToInt32(spvLienAccesAlarme.Surveiller)); } } else if (accesTwo == spvLienAccesAlarme.SpvAccesAlarmeSysteme0()) { // Concerne un accès alarme TRAP if (rowState == DataRowState.Deleted) { strMess = string.Format("#9#8#5#S#{0}#{1}#{2}#", spvEqt.AdresseIP, spvEqt.Id, accesOne.TrapIdent); } else { strMess = string.Format("#9#12#4#{0}#{1}#{2}#{3}#{4}#{5}#{6}#{7}#", strCodeSaisie, spvEqt.AdresseIP, spvEqt.Id, accesOne.TrapIdent, spvLienAccesAlarme.DureeMin, spvLienAccesAlarme.FreqNb, spvLienAccesAlarme.FreqPeriod, System.Convert.ToInt32(spvLienAccesAlarme.Surveiller)); } } else if (accesTwo != null && accesTwo != spvLienAccesAlarme.SpvAccesAlarmeSysteme0()) { // Concerne un accès alarme de type boucle // La donnée "A surveiller" a-t-elle changée bool bSurveillanceChangee = (rowState == DataRowState.Added && spvLienAccesAlarme.Surveiller) || (rowState == DataRowState.Modified && (bool)spvLienAccesAlarme.Row[CSpvLienAccesAlarme.c_champALARMGEREE_TOSURV, DataRowVersion.Original] != spvLienAccesAlarme.Surveiller); if (accesTwo.SpvEquip.TypeEquipement.Id == nIdTypeCARTE_GTR) { // Le nom de l'équipement de collecte est de la forme // IS xx/GTR yy string strNomEquipCollecte = accesTwo.SpvEquip.CommentairePourSituer; if (rowState == DataRowState.Deleted) { strMess = string.Format("#9#9#2#S#{0}#{1}#{2}#{3}#", strCategorieObjet, nIdObjet, strNomEquipCollecte.Substring(3, 2), ((Convert.ToInt32(strNomEquipCollecte.Substring(10, 2)) - 1) * 48) + Convert.ToInt32(accesTwo.NomAcces)); } else if (bSurveillanceChangee) { strMess = string.Format("#9#10#2#{0}#{1}#{2}#{3}#{4}#{5}#", strCodeSaisie, strCategorieObjet, nIdObjet, strNomEquipCollecte.Substring(3, 2), ((Convert.ToInt32(strNomEquipCollecte.Substring(10, 2)) - 1) * 48) + Convert.ToInt32(accesTwo.NomAcces), System.Convert.ToInt32(spvLienAccesAlarme.Surveiller)); } } else { // IP2PORT ou IP2CHOICE ou autre EDC boucle de type IP (ex: NEC) if (rowState == DataRowState.Deleted) { strMess = string.Format("#9#10#3#S#{0}#{1}#{2}#{3}#{4}#", strCategorieObjet, nIdObjet, accesTwo.SpvEquip.AdresseIP, accesTwo.SpvEquip.Id, accesTwo.NomAcces); } else { strMess = string.Format("#9#14#3#{0}#{1}#{2}#{3}#{4}#{5}#{6}#{7}#{8}#{9}#", strCodeSaisie, strCategorieObjet, nIdObjet, accesTwo.SpvEquip.AdresseIP, accesTwo.SpvEquip.Id, accesTwo.NomAcces, spvLienAccesAlarme.DureeMin, spvLienAccesAlarme.FreqNb, spvLienAccesAlarme.FreqPeriod, System.Convert.ToInt32(spvLienAccesAlarme.Surveiller)); } } } Message = strMess; return(true); }