Example #1
0
        /// <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)));
            }
        }
Example #2
0
 public CompanyWarningInfo(CompanyWarningStatus warningStatus, int daysToExpiration)
 {
     WarningStatus    = warningStatus;
     DaysToExpiration = daysToExpiration;
 }