//--------------------------------------------------------------------------------------------- protected override void RecalculeGraviteEtMasquage() { //bool bOldOperationnel = m_bIsOperationnel; EEtatOperationnelSchema oldEtat = EtatOperationnel; try { base.RecalculeGraviteEtMasquage(); //Normallement, il n'y a qu'un fils ! m_bIsOperationnel = true; foreach (CInfoElementDeSchemaSupervise infoFils in m_listeFils) { CInfoSchemaDeSchemaSupervise infoSchema = infoFils as CInfoSchemaDeSchemaSupervise; if (infoSchema != null && EtatOperationnel > infoSchema.EtatOperationnel) { EtatOperationnel = infoSchema.EtatOperationnel; } } } finally { if (EtatOperationnel != oldEtat) { m_base.OnChangementEtatSupervise(this); } } }
private void CalculArbreOperationnel() { // Calcul les graphes CResultAErreur result = CResultAErreur.True; CGrapheReseau grapheAller = new CGrapheReseau(); result = grapheAller.CalculeGraphe(m_schema, ESensAllerRetourLienReseau.Forward); if (result) { result = m_arbreAller.CalculArbreRedondanceAuto(m_schema, grapheAller); } CGrapheReseau grapheRetour = new CGrapheReseau(); result = grapheRetour.CalculeGraphe(m_schema, ESensAllerRetourLienReseau.Backward); if (result) { result = m_arbreRetour.CalculArbreRedondanceAuto(m_schema, grapheAller); } foreach (CInfoElementDeSchemaSupervise info in this.ListeFils) { CInfoSchemaDeSchemaSupervise infoSchema = info as CInfoSchemaDeSchemaSupervise; if (infoSchema != null) { infoSchema.CalculArbreOperationnel(); } } }
public void InitFromSchema(CSchemaReseau schema) { m_dbKeySchemaReseau = schema.DbKey; m_schema = schema; CListeObjetsDonnees lstElements = schema.ElementsDeSchema; lstElements.ReadDependances( "SchemaReseauInclu", "SchemaReseauContenu"); foreach (CElementDeSchemaReseau elt in lstElements) { IElementDeSchemaReseau elementFils = elt.ElementAssocie; if (elementFils != null) { CInfoElementDeSchemaSupervise fils = null; if (elementFils is CSite) { fils = new CInfoSiteDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1); } if (elementFils is CLienReseau) { fils = new CInfoLienDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1); } if (elementFils is CElementDeSchemaReseau) { fils = new CInfoEquipementDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1); } if (elementFils is CSchemaReseau) { fils = new CInfoSchemaDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1); } if (elementFils is CEquipementLogique) { fils = new CInfoEquipementDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1); } if (elementFils is CEntiteSnmp) { fils = new CInfoEntiteSnmpDeSchemaSupervise(this, elt, m_base, NiveauProfondeur + 1); } if (elementFils != null) { fils.InitFromElementDeSchema(elt); m_listeFils.Add(fils); } } } PrepareSupervisionEtatOperationnel(schema); CalculArbreOperationnel(); }
public override void FillDicNoeudArbreRacineToInfoElement( Dictionary <CElementDeArbreOperationnel, CInfoElementDeSchemaSupervise> dicNoeudArbreRacineToInfoElement) { //base.FillDicNoeudArbreRacineToInfoElement(dicNoeudArbreRacineToInfoElement); foreach (CInfoElementDeSchemaSupervise infoFils in m_listeFils) { CInfoSchemaDeSchemaSupervise infoSchema = infoFils as CInfoSchemaDeSchemaSupervise; if (infoSchema != null) { if (!dicNoeudArbreRacineToInfoElement.ContainsKey(infoSchema.ArbreAller.ElementRacine)) { dicNoeudArbreRacineToInfoElement.Add(infoSchema.ArbreAller.ElementRacine, this); } } } }
private void TrouveLesConcernes(CSchemaReseau schema) { m_infoSchemaRacine = new CInfoSchemaDeSchemaSupervise(null, null, this, 0); m_infoSchemaRacine.InitFromSchema(schema); m_dicDirectementConcernesParEquipement.Clear(); m_dicDirectementConcernesParLiaison.Clear(); m_dicDirectementConcernesParSite.Clear(); m_dicDirectementConcernesParEntiteSnmp.Clear(); m_dicDirectementConcernesParServices.Clear(); m_infoSchemaRacine.FillDicsConcernes( m_dicDirectementConcernesParSite, m_dicDirectementConcernesParLiaison, m_dicDirectementConcernesParEquipement, m_dicDirectementConcernesParEntiteSnmp, m_dicDirectementConcernesParServices); }
internal override void InitFromElementDeSchema(CElementDeSchemaReseau eltDeSchema) { base.InitFromElementDeSchema(eltDeSchema); CSite site = eltDeSchema.Site; if (site == null) { throw new Exception("Bad element for supervision data "); } InitForSite(site); //Cherche les cablages pour ce site foreach (CSchemaReseau sousSchema in eltDeSchema.SchemaReseau.SchemaFils) { if (site.Equals(sousSchema.SiteApparenance)) { CInfoSchemaDeSchemaSupervise info = new CInfoSchemaDeSchemaSupervise(this, eltDeSchema, m_base, NiveauProfondeur + 1); m_listeFils.Add(info); info.InitFromSchema(sousSchema); break; } } }
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_dbKeyLien = lien.DbKey; 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; } } } IElementALiensReseau extremite = lien.Element1; if (extremite is CSite) { m_dicSitesConcernant[extremite.DbKey] = true; } if (extremite is CEquipementLogique) { m_dicEquipementsConcernant[extremite.DbKey] = true; } extremite = lien.Element2; if (extremite is CSite) { m_dicSitesConcernant[extremite.DbKey] = true; } if (extremite is CEquipement) { m_dicEquipementsConcernant[extremite.DbKey] = true; } m_dicLiaisonsConcernant[lien.DbKey] = true; }