Beispiel #1
0
        public static void ReplaceRule(Rule originalRule, Rule replacementRule)
        {
            var index = Rules.IndexOf(originalRule);

            RemoveRule(originalRule);
            Rules.Insert(index, replacementRule);

            replacementRule.Conclusion.ClearCache();
            ConcreteObservations.Remove(replacementRule.Conclusion);
            foreach (var concreteObservation in replacementRule.ConcreteObservations)
            {
                if (!ConcreteObservations.Contains(concreteObservation) && !concreteObservation.IsConclusion())
                {
                    ConcreteObservations.Add(concreteObservation);
                }
            }
        }