/// <summary> /// Button 'Charge Fee' click /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnChargeFee_Click(object sender, EventArgs e) { ITransactionProcessor transactionProccesor = TransactionProcessor.GetTransactionProcessor(); CurrencyAmount currencyAmount = new CurrencyAmount(); currencyAmount.Amount = Convert.ToInt32(txtTransactionAmoun.Text); currencyAmount.Currency = txtTransactionCurrency.Text; IDepositAccount depositAccount = createDepositAccount(); ILoanAccount loanAccount = createLoanAccount(); List <IAccount> accounts = new List <IAccount>(); accounts.Add(depositAccount); accounts.Add(loanAccount); TransactionStatus status = ProcessorExtensions.ChargeProcessingFee(transactionProccesor, currencyAmount, accounts); if (status.Equals(TransactionStatus.Completed)) { lblTransactionStatus.Text = "Transaction Completed"; } else { lblTransactionStatus.Text = "Transaction Failed"; } DisplayLastTransactionDetails(); }
/// <summary> /// Method for dispaiing last transaction details /// </summary> private void DisplayLastTransactionDetails() { TransactionProcessor transactionProcessor = TransactionProcessor.GetTransactionProcessor(); TransactionLogEntry tmp = transactionProcessor.LastTransaction; //TransactionLogEntry tmp = transactionProcessor[transactionProcessor.TransactionCount - 1]; lbl_LogTransactionType.Text = tmp.TransactionType.ToString(); lbl_LogAmount.Text = tmp.Amount.Amount.ToString(); lbl_LogCurrency.Text = tmp.Amount.Currency; lbl_LogTransactionStatus.Text = tmp.Status.ToString(); foreach (IAccount account in tmp.Accounts) { if (account is ITransactionAccount) { populateTransactionAccount(account as ITransactionAccount); } else if (account is ILoanAccount) { populateLoanAccount(account as ILoanAccount); } else if (account is IDepositAccount) { populateDepositAccount(account as IDepositAccount); } } lblNumberTransactions.Text = "Number of transactions: " + transactionProcessor.TransactionCount.ToString(); }
/// <summary> /// Button 'Make Transaction' click /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnMakeTransaction_Click(object sender, EventArgs e) { ITransactionAccount transactionAccount = createTransactionAccount(); //IDepositAccount depositAccount = createDepositAccount(); ILoanAccount loanAccount = createLoanAccount(); ITransactionProcessor transactionProccesor = TransactionProcessor.GetTransactionProcessor(); CurrencyAmount currencyAmount = new CurrencyAmount(); currencyAmount.Amount = Convert.ToInt32(txtTransactionAmoun.Text); currencyAmount.Currency = txtTransactionCurrency.Text; //ovde dodavam event handler-i za event-ite transactionAccount.OnBalanceChanged += new BalanceChanged(OnBalanceChangeEventHandler); loanAccount.OnBalanceChanged += new BalanceChanged(OnBalanceChangeEventHandler); bool errorOccurred = false; string errorMsg = ""; TransactionStatus status = TransactionStatus.Failed; try { status = transactionProccesor.ProcessTransaction(TransactionType.Credit, currencyAmount, transactionAccount, loanAccount); } catch (ApplicationException ae) { errorOccurred = true; errorMsg = ae.Message; } finally { if (errorOccurred) { MessageBox.Show(errorMsg); } } if (status.Equals(TransactionStatus.Completed)) { lblTransactionStatus.Text = "Transaction Completed"; } else { lblTransactionStatus.Text = "Transaction Failed"; } //populateDepositAccount(depositAccount); //populateLoanAccount(loanAccount); //populateTransactionAccount(transactionAccount); //lblNumberTransactions.Text ="Number of transactions: " + transactionProccesor.TransactionCount; DisplayLastTransactionDetails(); }
/// <summary> /// Button 'Make Group Transaction' click /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnMakeGroupTransaction_Click(object sender, EventArgs e) { IAccount[] acounts = new IAccount[2]; //IDepositAccount depositAccount = createDepositAccount(); //ILoanAccount loanAccount = createLoanAccount(); //acounts[0] = depositAccount; //acounts[1] = loanAccount; Dictionary <CreateAccountType, IAccount> accountsDictionary = CreateAccounts(CreateAccountType.DepositAccount | CreateAccountType.LoanAccount, null); acounts[0] = accountsDictionary[CreateAccountType.DepositAccount]; acounts[1] = accountsDictionary[CreateAccountType.LoanAccount]; ITransactionProcessor transactionProccesor = TransactionProcessor.GetTransactionProcessor(); CurrencyAmount currencyAmount = new CurrencyAmount(); currencyAmount.Amount = Convert.ToInt32(txtTransactionAmoun.Text); currencyAmount.Currency = txtTransactionCurrency.Text; bool errorOccurred = false; string errorMsg = ""; TransactionStatus status = TransactionStatus.Failed; try { status = transactionProccesor.ProcessGroupTransaction(TransactionType.Debit, currencyAmount, acounts); } catch (CurrencyMismatchException cme) { errorOccurred = true; errorMsg = cme.Message; } catch (ApplicationException) { throw; } finally { if (errorOccurred) { MessageBox.Show(errorMsg); } } if (status.Equals(TransactionStatus.Completed)) { lblTransactionStatus.Text = "Transaction Completed"; } else { lblTransactionStatus.Text = "Transaction Failed"; } //populateDepositAccount(depositAccount); //populateLoanAccount(loanAccount); //lblNumberTransactions.Text ="Number of transactions: " + transactionProccesor.TransactionCount; DisplayLastTransactionDetails(); }