Example #1
0
        public bool MakeTransaction(Transactions transaction, Customers sender, Customers reciever)
        {
            try
            {
                bool isSuccess = false;
                transaction.isSuccess = false;
                if (sender.Balance > transaction.TransactionAmount)
                {
                    lock (_lock)
                        sender.Balance -= transaction.TransactionAmount;

                    lock (_lock)
                        reciever.Balance += transaction.TransactionAmount;

                    isSuccess = InsertTransaction(transaction);
                    if (isSuccess != transaction.isSuccess)
                    {
                        transaction           = generalTransaction;
                        transaction.isSuccess = isSuccess;
                        if (UpdateTransactionInfo(transaction))
                        {
                            lock (_lock)
                                _customerbusiness.UpdateCustomer(sender);

                            lock (_lock)
                                _customerbusiness.UpdateCustomer(reciever);
                        }
                    }
                }

                return(isSuccess);
            }
            catch (Exception ex)
            {
                throw new Exception("BusinessLogic:TransactionBusiness::MakeTransaction::Error occured.", ex);
            }
        }