public string GetNextPaymentMessage(NextPaymentMessageModel nextPaymentMessageModel)
var dateMonthDay = string.Empty;
if (this.DueDate.Equals(DateTime.MinValue))
nextPaymentMessageModel.BalanceDueMsg = string.IsNullOrWhiteSpace(nextPaymentMessageModel.CheckYourBillMsg) ? nextPaymentMessageModel.BalanceDueMsg : nextPaymentMessageModel.CheckYourBillMsg;
else if (this.HasMultipleDueDates)
return string.IsNullOrWhiteSpace(nextPaymentMessageModel.CheckYourBillMsg) ? nextPaymentMessageModel.BalanceDueMsg : nextPaymentMessageModel.CheckYourBillMsg;
dateMonthDay = string.Format("{0} {1}", GetDueDateAdMonth(), GetDateDayNumber(this.DueDate));
return nextPaymentMessageModel.NoBalanceMsg;
else if (this.isFinalAccount)
var paymentMessage = (this.Amount > 0) ? nextPaymentMessageModel.BalanceDueMsg.Replace(DaysKey, DueDays.ToString()).Replace(DateKey, dateMonthDay) : nextPaymentMessageModel.NegativeBalanceMsg;
return nextPaymentMessageModel.BalanceOverDueMsg.Replace(DaysKey, DueDays.ToString()).Replace(DateKey, dateMonthDay);
switch (this.PaymentState)
case PaymentStateEnum.NoDueAmount:
return nextPaymentMessageModel.NoBalanceMsg;
case PaymentStateEnum.AmountDue:
return HasMultipleDueDates
? nextPaymentMessageModel.BalanceDueMsg
: nextPaymentMessageModel.BalanceDueMsg.Replace(DaysKey, DueDays.ToString()).Replace(DateKey, dateMonthDay);
case PaymentStateEnum.DepositOwed:
return HasMultipleDueDates
? nextPaymentMessageModel.BalanceDueMsg
: nextPaymentMessageModel.BalanceDueMsg.Replace(DaysKey, DueDays.ToString()).Replace(DateKey, dateMonthDay);
case PaymentStateEnum.AutoPayDpp:
return this.DueDate.Equals(DateTime.MinValue)
? nextPaymentMessageModel.BalanceDueMsg
: nextPaymentMessageModel.AutoPayMsg
.Replace(DaysKey, DueDays.ToString()).Replace(DateKey, dateMonthDay)
.Replace(Amount1Key, this.ExplanationAmount1.ToString("N", new CultureInfo("en-US")));
case PaymentStateEnum.NewAccountNoBalanceNoHistory:
return this.DueDate.Equals(DateTime.MinValue)
? nextPaymentMessageModel.BalanceDueMsg
: nextPaymentMessageModel.FirstBillMsg.Replace(DaysKey, DueDays.ToString()).Replace(DateKey, dateMonthDay);
case PaymentStateEnum.LppBudgetBilling:
return nextPaymentMessageModel.BalanceDueMsg.Replace(DaysKey, DueDays.ToString()).Replace(DateKey, dateMonthDay);
case PaymentStateEnum.PaymentAgreement:
return HasMultipleDueDates
? nextPaymentMessageModel.BalanceDueMsg
: nextPaymentMessageModel.BalanceDueMsg.Replace(DaysKey, DueDays.ToString()).Replace(DateKey, dateMonthDay);
case PaymentStateEnum.EnrollPaymentExtension:
return this.DueDate.Equals(DateTime.MinValue)
? nextPaymentMessageModel.BalanceDueMsg
: nextPaymentMessageModel.BalanceDueExtensionMsg.Replace(DaysKey, DueDays.ToString()).Replace(DateKey, dateMonthDay);
case PaymentStateEnum.NegativeBalance:
return this.DueDate.Equals(DateTime.MinValue)
? nextPaymentMessageModel.BalanceDueMsg
: nextPaymentMessageModel.NegativeBalanceMsg.Replace(Amount1Key, this.ExplanationAmount1.ToString("N", new CultureInfo("en-US")));
case PaymentStateEnum.LppAutoPay:
return this.DueDate.Equals(DateTime.MinValue)
? nextPaymentMessageModel.BalanceDueMsg
: nextPaymentMessageModel.AutoPayMsg.Replace(Amount1Key, ExplanationAmount2.ToString("N", new CultureInfo("en-US"))).Replace(DateKey, dateMonthDay);
case PaymentStateEnum.NewCustomerNoBillDue:
return nextPaymentMessageModel.NewCustomerMsg;
case PaymentStateEnum.PaymentAgreementAutoPay:
return this.DueDate.Equals(DateTime.MinValue)
? nextPaymentMessageModel.BalanceDueMsg
: nextPaymentMessageModel.AutoPayMsg
.Replace(Amount1Key, this.ExplanationAmount1.ToString("N", new CultureInfo("en-US")))
.Replace(DaysKey, DueDays.ToString()).Replace(DateKey, dateMonthDay);
case PaymentStateEnum.PaymentAgreementAutoPayLpp:
return this.DueDate.Equals(DateTime.MinValue)
? nextPaymentMessageModel.BalanceDueMsg
: nextPaymentMessageModel.AutoPayMsg
.Replace(Amount1Key, this.ExplanationAmount1.ToString("N", new CultureInfo("en-US")))
.Replace(DaysKey, DueDays.ToString()).Replace(DateKey, dateMonthDay);
case PaymentStateEnum.PaymentExtensionAutoPay:
return this.DueDate.Equals(DateTime.MinValue)
? nextPaymentMessageModel.BalanceDueMsg
: nextPaymentMessageModel.AutoPayMsg
.Replace(Amount1Key, this.ExplanationAmount1.ToString("N", new CultureInfo("en-US")))
.Replace(DaysKey, DueDays.ToString()).Replace(DateKey, dateMonthDay);
case PaymentStateEnum.PaymentExtensionLpp:
return this.DueDate.Equals(DateTime.MinValue)
? nextPaymentMessageModel.BalanceDueMsg
: nextPaymentMessageModel.BalanceDueMsg.Replace(DaysKey, DueDays.ToString()).Replace(DateKey, dateMonthDay);
case PaymentStateEnum.PaymentExtensionLppAutopay:
return this.DueDate.Equals(DateTime.MinValue)
? nextPaymentMessageModel.BalanceDueMsg
: nextPaymentMessageModel.AutoPayMsg.Replace(DaysKey, DueDays.ToString()).Replace(DateKey, dateMonthDay);