/// <summary>
 /// Determines whether the specified candidate is current.
 /// this caters for and evaluates if funding has been withdrawn
 /// </summary>
 /// <param name="source">The source.</param>
 /// <param name="candidate">The candidate.</param>
 /// <param name="optionalEnding">The optional ending.</param>
 /// <returns>
 ///   <c>true</c> if the specified candidate is current; otherwise, <c>false</c>.
 /// </returns>
 public static bool IsCurrent(this ISupportFundingWithdrawal source, DateTime candidate, DateTime?optionalEnding = null) =>
 It.Has(source) &&
 !source.IsWithdrawn() &&
 It.IsBetween(candidate, source.StartDate, optionalEnding ?? source.EndDate ?? DateTime.MaxValue);