/// <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; }
/// <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; } }