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

  Source.Validation.MaxLengthAttribute.cs

 
using System;

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

        public MaxLengthAttribute(int maxLength, string errorMessage)
            : this(maxLength)
        {
            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}' maximum 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