本文整理汇总了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;
}
}
}