public static bool IsAPFDueAndNotPaid(string distributorID, string locale) { var isDue = false; var cop = GetProcessCountry(distributorID); DistributorProfileLoader loader = new DistributorProfileLoader(); var profile = loader.Load(new GetDistributorProfileById() { Id = distributorID }); if (cop == null) { cop = profile.ProcessingCountryCode; } if ((cop.Equals("CN"))) { return(IsAPFDueAndNotPaid(distributorID)); } if (IsGlobalExemptCountryOfProcessing(cop)) { return(isDue); } string level = GetDSLevel(distributorID); if (string.IsNullOrEmpty(level)) { level = profile.TypeCode; } if (HLConfigManager.Configurations.APFConfiguration.APFRequired) { DateTime annualProcessingFeeDue = GetAPFDueDate(distributorID, locale.Substring(3)); if ( !HLConfigManager.Configurations.APFConfiguration.ApfExemptCountriesOfProcessing.Contains( cop) && CanPurchaseApf(cop, locale.Substring(3), HLConfigManager.Configurations.APFConfiguration.ApfRestrictedByPurchaseLocation)) { // APF due var hmsAPFDue = new DateTime(annualProcessingFeeDue.Year, annualProcessingFeeDue.Month, annualProcessingFeeDue.Day); var currentDate = DateUtils.ConvertToLocalDateTime(DateTime.Now, locale.Substring(3)); if (hmsAPFDue < currentDate) //if (ods.Value.AnnualProcessingFeeDue < DateTime.Now) { isDue = true; if (IsExemptDueToHAPStatus(level, GetHapStatus(distributorID))) { isDue = false; } } if (isDue) { isDue = !GetAPFDuePaid(distributorID, annualProcessingFeeDue); } } } return(isDue); }