/// <summary>
        /// Constructing the Validation error by the <see cref="BaseValidationRule"/>.
        /// </summary>
        /// <exception cref="ArgumentNullException"> Throws exception in case the passed rule is null</exception>
        public ValidationErrorInfo(BaseValidationRule rule)
        {
            //Contract.Requires<ArgumentNullException>(rule != null);
            if (rule == null)
            {
                throw new ArgumentNullException($"{nameof(rule)} shouln't be null.");
            }

            PropertyName = rule.PropertyName;
            ErrorMessage = rule.ErrorMessage;
            Severity     = rule.Severity;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Constructing the attribute based on the rule type, severity type and additional arguments.
        /// </summary>
        /// <param name="ruleType">Rule type. Should be derivered from <see cref="BaseValidationRule"/></param>
        /// <param name="severity">Severity of the rule. More info: <see cref="RuleSeverities"/></param>
        /// <param name="args">Additional arguments list</param>
        /// <exception cref="ArgumentNullException"> Throws argument null exception if the rule type is null.</exception>
        public ValidationRuleAttribute(Type ruleType, RuleSeverities severity, params object[] args)
        {
            //Contract.Requires<ArgumentNullException>(ruleType != null);
            if (ruleType == null)
            {
                throw new ArgumentNullException($"{nameof(ruleType)} shouldn't be null.");
            }

            Rule = Activator.CreateInstance(ruleType, args) as BaseValidationRule;
            if (Rule != null)
            {
                Rule.Severity = severity;
            }
        }