public Scorer GetScorer( string name) { if (!Criteria.ContainsKey(name)) { throw new UnknownCriterionError(); } return(Criteria[name].Scorer); }
DeleteCriterionOrdering( string name) { if (!Criteria.ContainsKey(name)) { throw new UnknownCriterionError(); } Criteria[name].RemoveCriterionOrdering(); }
CreateCriterionOrdering( string name1, CriterionOrdering.OrderingRelation relation, string name2) { if (!Criteria.ContainsKey(name1)) { throw new UnknownCriterionError(); } if (!Criteria.ContainsKey(name2)) { throw new UnknownCriterionError(); } Criteria[name1].AddCriterionOrdering( relation, Criteria[name2]); }
CreateCriterion( string name, string description, Scorer scorer) { if (Criteria.ContainsKey(name)) { throw new DuplicateCriterionError(); } Criterion c = new Criterion(CriterionOrderings, name, description, scorer); MyBroker.Instance.Subscribe(this, Scorer.RatingChange.TopicIdentifier, c); MyBroker.Instance.Subscribe(this, Criterion.RelatedCriterionChange.TopicIdentifier, c); MyBroker.Instance.Subscribe(this, Criterion.RelationToChange.TopicIdentifier, c); MyBroker.Instance.Subscribe(this, Criterion.ScorerChange.TopicIdentifier, c); Criteria.Add( name, c); }
DeleteCriterion( string name) { if (!Criteria.ContainsKey(name)) { return; } Criterion c = Criteria[name]; Criteria.Remove(name); MyBroker.Instance.Unsubscribe(this, c); OrderedCriteria.Remove(c); c.RemoveCriterionOrdering(); c.Dispose(); NormalizeCriteria(); }