view Source/Validation/MaxDateValueAttribute.cs @ 6:11b6da379593

Исправлена странная ошибка при использовании OfType<...>().Where(...)
author cin
date Mon, 05 Dec 2016 05:50:52 +0300
parents f990fcb411a9
children
line wrap: on
line source

using System;

namespace BLToolkit.Validation
{
	[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
	public class MaxDateValueAttribute : MaxValueAttribute
	{
		public MaxDateValueAttribute(int year, int month, int day)
			: base(new DateTime(year, month, day))
		{
		}

		public MaxDateValueAttribute(int year, int month, int day, string errorMessage)
			: this(year, month, day)
		{
			ErrorMessage = errorMessage;
		}

		public MaxDateValueAttribute(int year, int month, int day, bool isExclusive)
			: base(new DateTime(year, month, day), isExclusive)
		{
		}

		public MaxDateValueAttribute(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;
		}
	}
}