diff Source/Validation/MinDateValueAttribute.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/MinDateValueAttribute.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 MinDateValueAttribute : MinValueAttribute
+	{
+		public MinDateValueAttribute(int year, int month, int day)
+			: base(new DateTime(year, month, day))
+		{
+		}
+
+		public MinDateValueAttribute(int year, int month, int day, string errorMessage)
+			: this(year, month, day)
+		{
+			ErrorMessage = errorMessage;
+		}
+
+		public MinDateValueAttribute(int year, int month, int day, bool isExclusive)
+			: base(new DateTime(year, month, day), isExclusive)
+		{
+		}
+
+		public MinDateValueAttribute(int year, int month, int day, bool isExclusive, string errorMessage)
+			: this(year, month, day, isExclusive)
+		{
+			ErrorMessage = errorMessage;
+		}
+
+		public override bool IsValid(ValidationContext context)
+		{
+			if (context.IsNull(context))
+				return true;
+
+			DateTime contextValue = Convert.ToDateTime(context.Value);
+			DateTime testValue    = (DateTime)GetValue(context);
+
+			return testValue < contextValue || !IsExclusive && testValue == contextValue;
+		}
+	}
+}