示例#1
0
        //----------------------------------------------------
        public void UpdateSupportants()
        {
            CLienReseau                 lienTimos               = ObjetTimosAssocie;
            CListeObjetsDonnees         supportants             = LiaisonsSupportants;
            Dictionary <CSpvLiai, bool> dicSupportantsExistants = new Dictionary <CSpvLiai, bool>();

            foreach (CSpvLiai_Liaic liaiC in supportants)
            {
                dicSupportantsExistants[liaiC.LiaisonSupportant] = true;
            }
            foreach (CLienReseau lienSupportant in lienTimos.LiensSupportants.ToArrayList())
            {
                if (CanSupervise(lienSupportant))
                {
                    CSpvLiai liaiSupportant = CSpvLiai.GetSpvLiaiFromLienReseau(lienSupportant) as CSpvLiai;
                    if (liaiSupportant == null)
                    {
                        liaiSupportant = CSpvLiai.GetSpvLiaiFromLienReseauAvecCreation(lienSupportant);
                        foreach (CSpvLiai_Liaic liaiC in supportants)
                        {
                            dicSupportantsExistants[liaiC.LiaisonSupportant] = true;
                        }
                    }
                    //Recalcule le dico, car ça a pu bouger
                    if (liaiSupportant != null)
                    {
                        if (!dicSupportantsExistants.ContainsKey(liaiSupportant))
                        {
                            CSpvLiai_Liaic liaic = new CSpvLiai_Liaic(ContexteDonnee);
                            liaic.CreateNewInCurrentContexte(new object[] { Id, liaiSupportant.Id });
                        }
                        else
                        {
                            dicSupportantsExistants[liaiSupportant] = false;
                        }
                    }
                }
            }
            //Supprime les supportants inutiles
            foreach (CSpvLiai_Liaic supportant in LiaisonsSupportants)
            {
                bool bDelete;
                if (dicSupportantsExistants.TryGetValue(supportant.LiaisonSupportant, out bDelete))
                {
                    if (bDelete)
                    {
                        supportant.Delete(true);
                    }
                }
            }
        }
示例#2
0
        //----------------------------------------------------
        public void UpdateSupportés()
        {
            CLienReseau                 lienTimos             = ObjetTimosAssocie;
            CListeObjetsDonnees         supportés             = LiaisonsSupportées;
            Dictionary <CSpvLiai, bool> dicSupportésExistants = new Dictionary <CSpvLiai, bool>();

            foreach (CSpvLiai_Liaic liaiC in supportés)
            {
                dicSupportésExistants[liaiC.LiaisonSupportee] = true;
            }
            foreach (CLienReseau lienSupporté in lienTimos.LiensSupportes.ToArrayList())
            {
                if (CanSupervise(lienSupporté))
                {
                    CSpvLiai liaiSupportée = CSpvLiai.GetSpvLiaiFromLienReseau(lienSupporté) as CSpvLiai;
                    if (liaiSupportée == null)
                    {
                        liaiSupportée = CSpvLiai.GetSpvLiaiFromLienReseauAvecCreation(lienSupporté);
                        foreach (CSpvLiai_Liaic liaiC in supportés)
                        {
                            dicSupportésExistants[liaiC.LiaisonSupportee] = true;
                        }
                    }
                    if (liaiSupportée != null)
                    {
                        if (!dicSupportésExistants.ContainsKey(liaiSupportée))
                        {
                            CSpvLiai_Liaic liaic = new CSpvLiai_Liaic(ContexteDonnee);
                            liaic.CreateNewInCurrentContexte(new object[] { liaiSupportée.Id, Id });
                        }
                        else
                        {
                            dicSupportésExistants[liaiSupportée] = false;
                        }
                    }
                }
            }
            //Supprime les supportés inutiles
            foreach (CSpvLiai_Liaic supporté in LiaisonsSupportées)
            {
                bool bDelete;
                if (dicSupportésExistants.TryGetValue(supporté.LiaisonSupportee, out bDelete))
                {
                    if (bDelete)
                    {
                        supporté.Delete(true);
                    }
                }
            }
        }