示例#1
0
        //---------------------------------------------------------------
        private void CalculeFils()
        {
            m_listeFils = new List <CDessinSatisfaction>();
            ISatisfactionBesoinAvecSousBesoins satB = Satisfaction as ISatisfactionBesoinAvecSousBesoins;

            if (satB != null)
            {
                foreach (CBesoin besoin in satB.GetSousBesoinsDeSatisfactionDirects())
                {
                    if (!m_niveau.BaseSatisfactions.IsDejaIntegréee(besoin))
                    {
                        CDessinSatisfaction dessin = new CDessinSatisfaction(m_niveau, besoin);
                        dessin.m_dessinParent = this;
                        m_listeFils.Add(dessin);
                        m_niveau.AddSatisfactionVisible(dessin);
                    }
                }
                foreach (ISatisfactionBesoin sousSat in satB.GetSousSatisfactions())
                {
                    if (!m_niveau.BaseSatisfactions.IsDejaIntegréee(sousSat))
                    {
                        CDessinSatisfaction dessin = new CDessinSatisfaction(m_niveau, sousSat);
                        dessin.m_dessinParent = this;
                        m_listeFils.Add(dessin);
                        m_niveau.AddSatisfactionVisible(dessin);
                    }
                }
            }
        }
示例#2
0
        //------------------------------------------------------------------------------------------------------------------------------
        private static void FillFlattenSatisfactionsHierarchy(ISatisfactionBesoin satisfaction, HashSet <ISatisfactionBesoin> set, HashSet <ISatisfactionBesoin> setSatFait)
        {
            if (setSatFait.Contains(satisfaction))//Déjà vu
            {
                return;
            }
            setSatFait.Add(satisfaction);
            set.Add(satisfaction);

            //Si c'est un besoin, ajoute les satisfactions de ce besoin
            CBesoin besoin = satisfaction as CBesoin;

            if (besoin != null)
            {
                foreach (CRelationBesoin_Satisfaction rel in besoin.RelationsSatisfactions)
                {
                    if (rel.Satisfaction != null)
                    {
                        FillFlattenSatisfactionsHierarchy(rel.Satisfaction, set, setSatFait);
                    }
                }
            }

            ISatisfactionBesoinAvecSousBesoins satSousBes = satisfaction as ISatisfactionBesoinAvecSousBesoins;

            if (satSousBes != null)
            {
                foreach (CBesoin sousBesoin in satSousBes.GetSousBesoinsDeSatisfactionDirects())
                {
                    FillFlattenSatisfactionsHierarchy(sousBesoin, set, setSatFait);
                }
                foreach (ISatisfactionBesoin sousSat in satSousBes.GetSousSatisfactions())
                {
                    FillFlattenSatisfactionsHierarchy(sousSat, set, setSatFait);
                }
            }
        }