in src/Relecloud.Web.Models/TicketManagement/Payment/PaymentDetails.cs [49:68]
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (!string.IsNullOrEmpty(ExpirationMonthYear) && ExpirationMonthYear.Length == 4)
{
var monthSplitString = ExpirationMonthYear.Substring(0, 2);
var yearSplitString = ExpirationMonthYear.Substring(2, 2);
if (int.TryParse(monthSplitString, out int cardExpirationMonth) && int.TryParse(yearSplitString, out int cardExpirationYear))
{
if ((DateTimeOffset.UtcNow.Year > cardExpirationYear + 2000)
|| (DateTimeOffset.UtcNow.Year == cardExpirationYear + 2000 && DateTime.UtcNow.Month > cardExpirationMonth))
{
yield return new ValidationResult("Please use a card that has not expired", new[] { nameof(ExpirationMonthYear) });
}
if (cardExpirationMonth > 12)
{
yield return new ValidationResult("The expiration date must be MMYY format", new[] { nameof(ExpirationMonthYear) });
}
}
}
}