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);
+		}
+	}
+}