title: FluentValidation - validating across multiple properties
body: <p>Have a form where a user can enter start date/time and end date/time for an event. Here's the validator so far:</p>
  
  <pre><code>public class EventModelValidator : AbstractValidator&lt;EventViewModel&gt;
      {
          public EventModelValidator()
          {
              RuleFor(x =&gt; x.StartDate)
                  .NotEmpty().WithMessage("Date is required!")
                  .Must(BeAValidDate).WithMessage("Invalid date");
              RuleFor(x =&gt; x.StartTime)
                  .NotEmpty().WithMessage("Start time is required!")
                  .Must(BeAValidTime).WithMessage("Invalid Start time");
              RuleFor(x =&gt; x.EndTime)
                  .NotEmpty().WithMessage("End time is required!")
                  .Must(BeAValidTime).WithMessage("Invalid End time");
              RuleFor(x =&gt; 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);
          }
  
      }
  </code></pre>
  
  <p>Now I'd also like to add validation that EndDateTime > StartDateTime (combined Date+Time properties), but not sure how to go about it.</p>
  
  <p><strong>Edit:</strong> 
  To clarify, I need to somehow combine EndDate + EndTime/StartDate + StartTime i.e. DateTime.Parse(src.StartDate + " " + src.StartTime) and then validate EndDateTime vs. StartDateTime - how do I do that?</p>