本文整理匯總了C#中OpenCBS.CoreDomain.Contracts.Loans.Loan.Reschedule方法的典型用法代碼示例。如果您正苦於以下問題:C# Loan.Reschedule方法的具體用法?C# Loan.Reschedule怎麽用?C# Loan.Reschedule使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類OpenCBS.CoreDomain.Contracts.Loans.Loan
的用法示例。
在下文中一共展示了Loan.Reschedule方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: Reschedule
public Loan Reschedule(Loan pContract, DateTime pDate, int pNbOfMaturity, int dateOffset,
bool pAccruedInterestDuringTheGracePeriod, decimal pNewInterestRate, int gracePeriod, bool chargeInterestDuringGracePeriod)
{
using (SqlConnection conn = _loanManager.GetConnection())
using (SqlTransaction sqlTransac = conn.BeginTransaction())
{
try
{
Loan copyOfLoan = pContract.Copy();
//create the rescheduling loan event
ReschedulingOptions ro = new ReschedulingOptions
{
ReschedulingDate = pDate,
ChargeInterestDuringShift = pAccruedInterestDuringTheGracePeriod,
InterestRate = pNewInterestRate,
RepaymentDateOffset = dateOffset,
NewInstallments = pNbOfMaturity,
GracePeriod = gracePeriod,
ChargeInterestDuringGracePeriod = chargeInterestDuringGracePeriod
};
RescheduleLoanEvent rescheduleLoanEvent = pContract.Reschedule(ro);
rescheduleLoanEvent.User = _user;
//insert into table ReschedulingOfALoanEvents
_ePs.FireEvent(rescheduleLoanEvent, pContract, sqlTransac);
OverdueEvent overdueEvent = pContract.AddRecheduleTransformationEvent(pDate);
if (overdueEvent != null) _ePs.FireEvent(overdueEvent, pContract, sqlTransac);
ArchiveInstallments(copyOfLoan, rescheduleLoanEvent, sqlTransac);
//delete all the old installments of the table Installments
_instalmentManager.DeleteInstallments(pContract.Id, sqlTransac);
//insert all the new installments in the table Installments
_instalmentManager.AddInstallments(pContract.InstallmentList, pContract.Id, sqlTransac);
_loanManager.UpdateLoanToRescheduled(pNewInterestRate, pNbOfMaturity, pContract, sqlTransac);
sqlTransac.Commit();
return pContract;
}
catch (Exception ex)
{
sqlTransac.Rollback();
throw ex;
}
}
}