예제 #1
0
        public Scorer GetScorer(
            string name)
        {
            if (!Criteria.ContainsKey(name))
            {
                throw new UnknownCriterionError();
            }

            return(Criteria[name].Scorer);
        }
예제 #2
0
        DeleteCriterionOrdering(
            string name)
        {
            if (!Criteria.ContainsKey(name))
            {
                throw new UnknownCriterionError();
            }

            Criteria[name].RemoveCriterionOrdering();
        }
예제 #3
0
        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]);
        }
예제 #4
0
        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);
        }
예제 #5
0
        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();
        }