本文整理汇总了C#中ISavingsContract.SpecialOperationDebit方法的典型用法代码示例。如果您正苦于以下问题:C# ISavingsContract.SpecialOperationDebit方法的具体用法?C# ISavingsContract.SpecialOperationDebit怎么用?C# ISavingsContract.SpecialOperationDebit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ISavingsContract
的用法示例。
在下文中一共展示了ISavingsContract.SpecialOperationDebit方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SpecialOperationDebit
public SavingDebitOperationEvent SpecialOperationDebit(ISavingsContract pSaving, DateTime pDate, OCurrency debitAmount,
string pDescription, User pUser, OSavingsMethods savingsMethod)
{
using (SqlConnection conn = _savingManager.GetConnection())
using (SqlTransaction sqlTransaction = conn.BeginTransaction())
{
try
{
if (pSaving is SavingBookContract)
{
decimal vBalance = CheckVirtualBalance((SavingBookContract) pSaving, debitAmount);
if (vBalance > 0)
{
List<string> messages = new List<string>
{
ServicesHelper.ConvertDecimalToString(
((SavingBookContract) pSaving).GetBalance().Value),
ServicesHelper.ConvertDecimalToString(vBalance),
((SavingBookContract) pSaving).Loans.Count.ToString(),
ServicesHelper.ConvertDecimalToString(
((SavingBookContract) pSaving).GetBalance().Value -
vBalance)
};
throw new OpenCbsSavingException(
OpenCbsSavingExceptionEnum.BalanceOnCurrentSavingAccountForTransfer, messages);
}
}
//// Create a fake Saving object
ISavingsContract savingSimulation = (ISavingsContract) pSaving.Clone();
// Do deposit to the fake Saving object
savingSimulation.SpecialOperationDebit(debitAmount, pDate, pDescription, pUser);
// Check balance simulation
if (!IsSavingBalanceCorrect(savingSimulation))
throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.BalanceIsInvalid);
SavingDebitOperationEvent events = pSaving.SpecialOperationDebit(debitAmount, pDate, pDescription,
pUser);
_ePS.FireEvent(events, pSaving, sqlTransaction);
// Change overdraft state
if (pSaving is SavingBookContract)
{
if (pSaving.GetBalance() > 0)
{
((SavingBookContract) pSaving).InOverdraft = false;
UpdateOverdraftStatus(pSaving.Id, false);
}
}
sqlTransaction.Commit();
return events;
}
catch (Exception)
{
sqlTransaction.Rollback();
throw;
}
}
}