public override TChoiceEntity Choice(TDocument entity) { TChoiceEntity choiceEntity = default(TChoiceEntity); if (_choiceRule == null) { choiceEntity = base.Choice(entity); } else { Guard.Against <ArgumentNullException>(entity == null, "Невозможно выбрать сущность, ссылка на параметр не может быть нулевой."); Guard.Against <ArgumentNullException>(_rule == null, "Необходимо установить не нулевое правило проверки."); Guard.Against <ArgumentNullException>(_choiced == null, "Необходимо установить не нулевой Func<TEntity, TChoiceEntity> делегат."); if (IsSatisfied(entity)) { choiceEntity = _choiceRule.ChoicedFunc(entity); } } return(choiceEntity); }