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

  Source.Validation.MinDateValueAttribute.cs

 
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;
        }
    }
}
 
© 2010 www.bltoolkit.net
support@bltoolkit.net