110 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
#if FRAMEWORK20
 | 
						|
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Text;
 | 
						|
using System.ComponentModel;
 | 
						|
 | 
						|
namespace DevComponents.DotNetBar.Validator
 | 
						|
{
 | 
						|
    public class RangeValidator : ValidatorBase
 | 
						|
    {
 | 
						|
        #region Constructors
 | 
						|
        /// <summary>
 | 
						|
        /// Initializes a new instance of the RangeValidator class.
 | 
						|
        /// </summary>
 | 
						|
        public RangeValidator()
 | 
						|
        {
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Initializes a new instance of the RangeValidator class.
 | 
						|
        /// </summary>
 | 
						|
        public RangeValidator(string errorMessage, object minimumValue, object maximumValue)
 | 
						|
        {
 | 
						|
            this.ErrorMessage = errorMessage;
 | 
						|
            this.MinimumValue = minimumValue;
 | 
						|
            this.MaximumValue = maximumValue;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Initializes a new instance of the RangeValidator class.
 | 
						|
        /// </summary>
 | 
						|
        public RangeValidator(string errorMessage, string optionalValidationGroup, object minimumValue, object maximumValue)
 | 
						|
        {
 | 
						|
            this.ErrorMessage = errorMessage;
 | 
						|
            this.OptionalValidationGroup = optionalValidationGroup;
 | 
						|
            this.MinimumValue = minimumValue;
 | 
						|
            this.MaximumValue = maximumValue;
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Implementation
 | 
						|
        public override bool Validate(System.Windows.Forms.Control input)
 | 
						|
        {
 | 
						|
            if (_MaximumValue == null && _MinimumValue == null) return true;
 | 
						|
            object value = GetControlValue(input);
 | 
						|
 | 
						|
            if (value == null)
 | 
						|
            {
 | 
						|
                if (_MinimumValue == null) return true;
 | 
						|
                return false;
 | 
						|
            }
 | 
						|
 | 
						|
            if(value == "" && _IsEmptyStringValid)
 | 
						|
                return true;
 | 
						|
 | 
						|
            bool isMinimumValid = true;
 | 
						|
            if (_MinimumValue != null)
 | 
						|
            {
 | 
						|
                isMinimumValid = CompareValidator.Compare(value, _MinimumValue, eValidationCompareOperator.GreaterThanEqual);
 | 
						|
                if (!isMinimumValid) return false;
 | 
						|
            }
 | 
						|
            bool isMaximumValid = true;
 | 
						|
            if (_MaximumValue != null)
 | 
						|
            {
 | 
						|
                isMaximumValid = CompareValidator.Compare(value, _MaximumValue, eValidationCompareOperator.LessThanEqual);
 | 
						|
            }
 | 
						|
 | 
						|
            this.LastValidationResult = isMinimumValid & isMaximumValid;
 | 
						|
            return this.LastValidationResult;
 | 
						|
        }
 | 
						|
 | 
						|
        private object _MaximumValue = null;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the maximum value control may have.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue((string)null), Category("Behavior"), Description("Indicates maximum value control may have."), TypeConverter(typeof(StringConverter))]
 | 
						|
        public object MaximumValue
 | 
						|
        {
 | 
						|
            get { return _MaximumValue; }
 | 
						|
            set { _MaximumValue = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        private object _MinimumValue = null;
 | 
						|
        /// <summary>
 | 
						|
        /// Gets or sets the minimum value control may have.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue((string)null), Category("Behavior"), Description("Indicates minimum value control may have."), TypeConverter(typeof(StringConverter))]
 | 
						|
        public object MinimumValue
 | 
						|
        {
 | 
						|
            get { return _MinimumValue; }
 | 
						|
            set { _MinimumValue = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        private bool _IsEmptyStringValid = false;
 | 
						|
        /// <summary>
 | 
						|
        /// Indicates whether empty string of zero length is considered valid input.
 | 
						|
        /// </summary>
 | 
						|
        [DefaultValue(false), Category("Behavior"), Description("Indicates whether empty string of zero length is considered valid input.")]
 | 
						|
        public bool IsEmptyStringValid
 | 
						|
        {
 | 
						|
            get { return _IsEmptyStringValid; }
 | 
						|
            set
 | 
						|
            {
 | 
						|
                _IsEmptyStringValid = value;
 | 
						|
            }
 | 
						|
        }
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
}
 | 
						|
#endif |