Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a way through data annotations to verify that one date property is greater than or equal to another date property?

I have a StartDate and EndDate on my SchoolEvents Model and I was wondering if there are any data annotations I could use to verify that the StartDate is less than or equal to the EndDate and that the EndDate is greater than or equal to the StartDate?

like image 775
The Vanilla Thrilla Avatar asked May 06 '13 14:05

The Vanilla Thrilla


2 Answers

From my point of view, you have to build a custom validation attribute. You can look at the link to validate follow specific your validation. It will take your efforts so much. Instead of you use data annotation you should apply Fluent Validation which will help you reduce efforts. It is easy to setup, straight forward and separates of concern, you do not need mixing between view models, domain objects, and validations which depend on business rule.

like image 82
Toan Vo Avatar answered Sep 18 '22 05:09

Toan Vo


You can achieve what you need by installing and using foolproof nuget package.

Install foolproof nuget package and use its extra useful attributes like the following:

public class EventViewModel
{
    [Required]
    public string Name { get; set; }

    [Required]
    public DateTime Start { get; set; }

    [Required]
    [GreaterThan("Start")]
    public DateTime End { get; set; }
}

More examples of exactly what you need are here

like image 35
Amin Saqi Avatar answered Sep 19 '22 05:09

Amin Saqi