Example #1
0
        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);
        }