Business Logic Toolkit for .NET
www.bltoolkit.net
|  Home   |  Download   |  Documentation   |  Discussions   |  License   |

  Source.Validation.MinLengthAttribute.cs

 
using System;

namespace BLToolkit.Validation
{
    [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
    public class MinLengthAttribute : ValidatorBaseAttribute
    {
        public MinLengthAttribute(int minLength)
        {
            _value = minLength;
        }

        public MinLengthAttribute(int minLength, string errorMessage)
            : this(minLength)
        {
            ErrorMessage = errorMessage;
        }

        private readonly int _value;
        public           int  Value
        {
            get { return _value; }
        }
    
        public override bool IsValid(ValidationContext context)
        {
            return context.IsNull(context) || context.Value.ToString().Length >= _value;
        }

        public override string ErrorMessage
        {
            get { return base.ErrorMessage ?? "'{0}' minimum length is {1}."; }
            set { base.ErrorMessage = value; }
        }

        public override string GetErrorMessage(ValidationContext context)
        {
            return string.Format(ErrorMessage, GetPropertyFriendlyName(context), Value);
        }
    }
}
 
© 2010 www.bltoolkit.net
support@bltoolkit.net