本文整理汇总了C#中OpenCBS.CoreDomain.Contracts.Loans.Loan.CalculateTranche方法的典型用法代码示例。如果您正苦于以下问题:C# Loan.CalculateTranche方法的具体用法?C# Loan.CalculateTranche怎么用?C# Loan.CalculateTranche使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OpenCBS.CoreDomain.Contracts.Loans.Loan
的用法示例。
在下文中一共展示了Loan.CalculateTranche方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddTranche
public Loan AddTranche(Loan pContract, IClient pClient, DateTime pDate, int pNbOfMaturity, int pTrancheAmount, bool pApplyNewInterestOnOLB, decimal pNewInterestRate)
{
using (SqlConnection conn = _loanManager.GetConnection())
using (SqlTransaction sqlTransaction = conn.BeginTransaction())
{
try
{
CheckTranche(pDate, pContract, pTrancheAmount);
Loan copyOfLoan = pContract.Copy();
TrancheOptions to = new TrancheOptions
{
TrancheDate = pDate,
CountOfNewInstallments = pNbOfMaturity,
TrancheAmount = pTrancheAmount,
InterestRate = pNewInterestRate,
ApplyNewInterestOnOLB = pApplyNewInterestOnOLB
};
TrancheEvent trancheEvent = pContract.CalculateTranche(to);
trancheEvent.User = _user;
//insert into table TrancheEvent
_ePs.FireEvent(trancheEvent, pContract, sqlTransaction);
ArchiveInstallments(copyOfLoan, trancheEvent, sqlTransaction);
//delete all the old installments of the table Installments
_instalmentManager.DeleteInstallments(pContract.Id, sqlTransaction);
//insert all the new installments in the table Installments
_instalmentManager.AddInstallments(pContract.InstallmentList, pContract.Id, sqlTransaction);
//Activate the contract if it's closed because of new tranch
if (pContract.Closed)
{
pContract.ContractStatus = OContractStatus.Active;
pContract.Closed = false;
_loanManager.UpdateLoan(pContract, sqlTransaction);
}
//in the feature might be combine UpdateLoan + UpdateLoanWithinTranche
_loanManager.UpdateLoanWithinTranche(to.InterestRate, pContract.NbOfInstallments, pContract,
sqlTransaction);
pContract.Events.Add(trancheEvent);
pContract.GivenTranches.Add(trancheEvent);
sqlTransaction.Commit();
SetClientStatus(pContract, pClient);
return pContract;
}
catch (Exception ex)
{
if (sqlTransaction != null)
sqlTransaction.Rollback();
throw ex;
}
}
}