/// <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);