/// <summary>
 /// Initializes a new instance of the <see cref="ModelPropertyValidator"/> class.
 /// </summary>
 /// <param name="validationRunner">The validation runner.</param>
 /// <param name="ruleProvider">The rule provider.</param>
 /// <param name="scriptManager">The script manager.</param>
 public ModelPropertyValidator(IValidationRunner validationRunner, IValidationRuleProvider ruleProvider,
                               IValidationScriptManager scriptManager)
 {
     _validationRunner = validationRunner ?? new DataAnnotationsValidationRunner();
     _ruleProvider     = ruleProvider;
     _scriptManager    = scriptManager;
 }
        /// <summary>
        /// Registers the scripts.
        /// </summary>
        public void RegisterScripts()
        {
            // get the attriubtes
            IEnumerable <ValidationAttribute> attributes = GetValidationAttributes();

            if (!attributes.Any())
            {
                return;
            }

            // get the rules
            if (_ruleProvider == null)
            {
                _ruleProvider = new ValidationRuleProvider();
            }

            RuleCollection rules = _ruleProvider.GetRules(attributes);

            if (!rules.Any())
            {
                return;
            }

            // register validation scripts
            if (_scriptManager == null)
            {
                _scriptManager = new ValidationScriptManager(Page, GetControlRenderId(ControlToValidate));
            }

            _scriptManager.RegisterScripts(rules);
        }