using System; using System.Collections; using log4net; using Spring.Validation; namespace Sleis.Validation.Spring { public class NullableDateTimeValidator : RequiredValidator { public string Provider { get; set; } public string MessageId { get; set; } internal static ILog Log; public NullableDateTimeValidator() { Log = LogManager.GetLogger(this.GetType()); } public override bool Validate(object validationContext, IDictionary contextParams, IValidationErrors errors) { Log.DebugFormat("Validate({0},{1},{2})", validationContext, contextParams, errors); bool result = true; IValidationContextProvider contextProvider = validationContext as IValidationContextProvider; if (EvaluateWhen(validationContext, contextParams)) { DateTime? nullableDateTime = base.EvaluateTest(validationContext, contextParams) as DateTime?; if (!nullableDateTime.HasValue || nullableDateTime.Value == DateTime.MinValue) { errors.AddError(Provider, new ErrorMessage(MessageId, contextProvider.ValidationContxt)); // errors.AddError(Provider, new ErrorMessage(MessageId, contextProvider.ValidationContxt)); result = false; } } return result; } } }