public override bool Equals(object obj) { if (obj == null) { return(false); } if (!(obj is NameVerbValueFact)) { return(false); } NameVerbValueFact fact = (NameVerbValueFact)obj; if (this.name != fact.name) { return(false); } if (this.verb != fact.verb) { return(false); } if (this.value == null) { return(fact.value == null); } if (!this.value.Equals(fact.value)) { return(false); } return(true); }
private void ProcessRetractedFact(NameVerbValueFact fact) { IList<Rule> newretracted = new List<Rule>(); foreach (var rule in this.fired) if (rule.Conditions.Any(c => c is NameVerbValueFact && ((NameVerbValueFact)c).Name == fact.Name)) if (rule.RetractIfNotReady(this)) newretracted.Add(rule); foreach (var rule in newretracted) { this.fired.Remove(rule); this.notfired.Add(rule); } }