Avere un modulo in cui un utente può immettere la data/ora di inizio e la data/ora di fine di un evento. Ecco il validatore finora:FluentValidation: convalida su più proprietà
public class EventModelValidator : AbstractValidator<EventViewModel>
{
public EventModelValidator()
{
RuleFor(x => x.StartDate)
.NotEmpty().WithMessage("Date is required!")
.Must(BeAValidDate).WithMessage("Invalid date");
RuleFor(x => x.StartTime)
.NotEmpty().WithMessage("Start time is required!")
.Must(BeAValidTime).WithMessage("Invalid Start time");
RuleFor(x => x.EndTime)
.NotEmpty().WithMessage("End time is required!")
.Must(BeAValidTime).WithMessage("Invalid End time");
RuleFor(x => x.Title).NotEmpty().WithMessage("A title is required!");
}
private bool BeAValidDate(string value)
{
DateTime date;
return DateTime.TryParse(value, out date);
}
private bool BeAValidTime(string value)
{
DateTimeOffset offset;
return DateTimeOffset.TryParse(value, out offset);
}
}
Ora vorrei anche aggiungere che la convalida data_ora_fine> (proprietà combinato Data + TIME) StartDateTime, ma non sapete come andare su di esso.
Edit: Per chiarire, ho bisogno di combinare qualche modo DataFine + EndTime/DataInizio + StartTime cioè DateTime.Parse (src.StartDate + "" + src.StartTime) e poi validare data_ora_fine vs. StartDateTime - come si fa Lo faccio?
È possibile fare lo stesso lato client? – SMC
Questo non è più valido in FluentValitation. Questa è la risposta corretta: http://stackoverflow.com/a/20546097/59119 – Natrium