/// <summary> /// Returns the warning status of the project based on it's current status and expiration details. /// </summary> public static CompanyWarningInfo GetCompanyWarningStatus(int companyId, int companyStatusCodeId, DateTime?expirationDate) { using (StageBitzDB dataContext = new StageBitzDB()) { CompanyBL companyBL = new CompanyBL(dataContext); FinanceBL financeBL = new FinanceBL(dataContext); string statusCode = Utils.GetCodeByCodeId(companyStatusCodeId).Value; double remainingDays = (statusCode == "ACTIVE" || expirationDate == null) ? -1 : (expirationDate.Value.Date - Utils.Today).TotalDays; CompanyWarningStatus warningStatus = CompanyWarningStatus.NoWarning; if (companyBL.HasCompanySuspendedbySBAdmin(companyId)) { warningStatus = CompanyWarningStatus.SBAdminSuspended; } else if (statusCode == "GRACEPERIOD" && ProjectFinanceHandler.IsPaymentFailedInvoicesExistForCompany(companyId)) { warningStatus = CompanyWarningStatus.PaymentFailedGracePeriod; } else if (statusCode == "SUSPENDEDFORPAYMENTFAILED") { warningStatus = CompanyWarningStatus.PaymentFailed; } else if (!financeBL.HasPackageSelectedForFreeTrailEndedCompany(companyId)) { warningStatus = CompanyWarningStatus.FreeTrailEndNoPaymentPackage; } else if (statusCode == "SUSPENDEDFORNOPAYMENTOPTIONS") { warningStatus = CompanyWarningStatus.SuspendedForNoPaymentOptions; } return(new CompanyWarningInfo(warningStatus, (int)Math.Round(remainingDays, 0))); } }
public CompanyWarningInfo(CompanyWarningStatus warningStatus, int daysToExpiration) { WarningStatus = warningStatus; DaysToExpiration = daysToExpiration; }