public override void FillDicsElementToNoeudsArbre( CDictionnaireElementToNoeudArbre dicEquipementToNoeudArbreOp, CDictionnaireElementToNoeudArbre dicSiteToNoeudArbreOp, CDictionnaireElementToNoeudArbre dicLiaisonToNoeudArbreOp, CDictionnaireElementToNoeudArbre dicServiceToNoeudArbreOp) { base.FillDicsElementToNoeudsArbre( dicEquipementToNoeudArbreOp, dicSiteToNoeudArbreOp, dicLiaisonToNoeudArbreOp, dicServiceToNoeudArbreOp); // Rempli les dictionnaires : Id élement -> liste de noeuds // Sens aller CElementDeArbreOperationnel noeudRacineA = m_arbreAller.ElementRacine; FillDicsForNode(noeudRacineA, dicEquipementToNoeudArbreOp, dicSiteToNoeudArbreOp, dicLiaisonToNoeudArbreOp, dicServiceToNoeudArbreOp); // Sens Retour CElementDeArbreOperationnel noeudRacineR = m_arbreRetour.ElementRacine; FillDicsForNode(noeudRacineR, dicEquipementToNoeudArbreOp, dicSiteToNoeudArbreOp, dicLiaisonToNoeudArbreOp, dicServiceToNoeudArbreOp); }
//------------------------------------ public virtual void FillDicsElementToNoeudsArbre( CDictionnaireElementToNoeudArbre dicEquipementToNoeudArbreOp, CDictionnaireElementToNoeudArbre dicSiteToNoeudArbreOp, CDictionnaireElementToNoeudArbre dicLiaisonToNoeudArbreOp, CDictionnaireElementToNoeudArbre dicServiceToNoeudArbreOp) { foreach (CInfoElementDeSchemaSupervise fils in m_listeFils) { fils.FillDicsElementToNoeudsArbre( dicEquipementToNoeudArbreOp, dicSiteToNoeudArbreOp, dicLiaisonToNoeudArbreOp, dicServiceToNoeudArbreOp); } }
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) { dicEquipementToNoeudArbreOp.Add(eltAssocie.DbKey, noeudEntite); } else if (eltAssocie is CSite) { dicSiteToNoeudArbreOp.Add(eltAssocie.DbKey, noeudEntite); } else if (eltAssocie is CLienReseau) { dicLiaisonToNoeudArbreOp.Add(eltAssocie.DbKey, noeudEntite); } else if (eltAssocie is CSchemaReseau) { dicServiceToNoeudArbreOp.Add(eltAssocie.DbKey, noeudEntite); } } catch { } } // Fonction récursive sur les noeuds fils foreach (CElementDeArbreOperationnel nodeFils in node.Fils) { FillDicsForNode(nodeFils, dicEquipementToNoeudArbreOp, dicSiteToNoeudArbreOp, dicLiaisonToNoeudArbreOp, dicServiceToNoeudArbreOp); } }