Exemple #1
0
        /// <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();
        }
Exemple #2
0
        /// <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();
        }
Exemple #3
0
        /// <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();
        }
Exemple #4
0
        /// <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();
        }