/// <summary>
        /// Добавляет правило <see cref="IChoiceRule{TEntity, TChoiceEntity}"/> в агрегатор.
        /// </summary>
        /// <param name="ruleName">string. Уникальное название правила.</param>
        /// <param name="rule">Экземпляр <see cref="IChoiceRule{TEntity, TChoiceEntity}"/> для добавления.</param>
        public void AddRule(string ruleName, IChoiceRule <TEntity, TChoiceEntity> rule)
        {
            Guard.Against <ArgumentNullException>(rule == null,
                                                  "Невозможно добавить нулевое правило. Ожидается не нулевая ссылка.");
            Guard.Against <ArgumentNullException>(string.IsNullOrEmpty(ruleName),
                                                  "Невозможно добавить правило с нулевым названием. ");
            Guard.Against <ArgumentException>(_ruleSets.ContainsKey(ruleName),
                                              "Другое правило с таким же имененм уже существует. Невозможно добавить дубликат.");

            _ruleSets.Add(ruleName, rule);
        }
Example #2
0
 public TypeChoiceRule(string entityName, IChoiceRule <TDocument, TChoiceEntity> choiceRule, bool checkParentName)
     : this(entityName, default(TChoiceEntity), checkParentName)
 {
     _choiceRule = choiceRule;
 }