Mercurial > pub > bltoolkit
diff Source/Validation/MaxLengthAttribute.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Source/Validation/MaxLengthAttribute.cs Thu Mar 27 21:46:09 2014 +0400 @@ -0,0 +1,41 @@ +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); + } + } +}