Example #1
0
        public void RefreshAlternativeNodes()
        {
            foreach (CriterionNode criterionNode in GoalNode.GetLowestCriterionNodes())
            {
                foreach (Alternative alternative in Alternatives)
                {
                    if (!criterionNode.AlternativeNodes.Contains(alternative))
                    {
                        criterionNode.AlternativeNodes.Add(new AlternativeNode(alternative));
                    }
                }

                AlternativeNodeCollection toBeRemoved = new AlternativeNodeCollection();
                foreach (AlternativeNode alternativeNode in criterionNode.AlternativeNodes)
                {
                    if (!this.Alternatives.Contains(alternativeNode.Alternative))
                    {
                        toBeRemoved.Add(alternativeNode);
                    }
                }

                foreach (AlternativeNode alternativeNode in toBeRemoved)
                {
                    criterionNode.AlternativeNodes.Remove(alternativeNode);
                }
            }
        }
Example #2
0
 public CriterionNode(string name, decimal localPriority)
     : base(name, localPriority)
 {
     subcriterionNodes = new CriterionNodeCollection(HandleChildCriterionAdded, HandleChildCriterionRemoved);
     alternativeNodes  = new AlternativeNodeCollection(HandleAlternativeAdded, HandleAlternativeRemoved);
 }