Example #1
0
        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 m_btnTestArbre_Click(object sender, EventArgs e)
        {
            CSpvSchemaReseau spvSchema = CSpvSchemaReseau.GetObjetSpvFromObjetTimos(SchemaReseau);

            if (spvSchema != null)
            {
                CFormTestSpvGraph.ShowArbreSpv(spvSchema);
            }
        }
Example #3
0
        public void InitFromSchema(CSchemaReseau schema)
        {
            m_nIdSchemaReseau = schema.Id;
            m_schema          = schema;

            CSpvSchemaReseau schemaSPV = CSpvSchemaReseau.GetObjetSpvFromObjetTimos(schema);

            if (schemaSPV != null)
            {
                m_nIdSchemaReseauSpv = schemaSPV.Id;
            }

            CListeObjetsDonnees lstElements = schema.ElementsDeSchema;

            lstElements.ReadDependances(
                "SchemaReseauInclu",
                "SchemaReseauContenu");
            //Charge les données SPV
            AssureRelationsToSpv();
            CListeObjetsDonnees lstTmp = lstElements.GetDependances("Site");

            lstTmp.GetDependances(m_relationFromSiteSpvToSite).AssureLectureFaite();

            lstTmp = lstElements.GetDependances("EquipementLogique");
            lstTmp.GetDependances(m_relationFromEquipementSpvToEquipement).AssureLectureFaite();

            lstTmp = lstElements.GetDependances("LienReseau");
            lstTmp.GetDependances(m_relationFromLiaisonSpvToLiaison).AssureLectureFaite();

            //CSpvService service = CSpvService.GetObjetSpvFromObjetTimos(schema);

            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 != null)
                    {
                        fils.InitFromElementDeSchema(elt);
                        m_listeFils.Add(fils);
                    }
                }
            }

            PrepareSupervisionEtatOperationnel(schema);
            CalculArbreOperationnel();
        }