Mercurial > pub > bltoolkit
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; + } + } +}