Esempio n. 1
0
 //Helper function for executing both kinds of transactions, while adding them to the log file
 private void ExecuteTransaction(Transaction transaction)
 {
     transaction.Execute();
     if (transaction.User.Balance <= 50)
     {
         UserBalanceWarning?.Invoke(transaction.User, transaction.User.Balance);
     }
     WriteToLogFile(transaction);
     allTransactions.Add(transaction);
 }
        //Find the user with the given username
        public User GetUserByUsername(string username)
        {
            User user = _users.Find(p => p.Username == username);

            if (user != null)
            {
                if (user.Balance < 50)
                {
                    UserBalanceWarning?.Invoke(user, user.Balance);
                }
                return(user);
            }
            throw new UserNotFoundException("User was not found", username);
        }
Esempio n. 3
0
        public bool ExecuteTransaction(Transaction trans)
        {
            bool success = trans.Execute();

            if (success == true)
            {
                if (trans.User.Balance <= 50)
                {
                    UserBalanceWarning?.Invoke(trans.User, trans.User.Balance);
                }
                using (System.IO.StreamWriter file =
                           new System.IO.StreamWriter(@"Data\Transactions.txt", true))
                {
                    file.WriteLine(trans.LogToString());
                }
                DaAccess.Add(trans);
            }
            return(success);
        }
Esempio n. 4
0
        public delegate void UserBalanceNotification(object source, int balance); // delegate to pass when user balance fall below critical levels

        protected virtual void OnUserBalanceWarning(int balance)
        {
            UserBalanceWarning?.Invoke(this, balance);
        }
Esempio n. 5
0
 protected virtual void OnUserBalanceWarning(User user)
 {
     UserBalanceWarning?.Invoke(user, user.Balance);
 }
Esempio n. 6
0
 protected virtual void OnUserBalanceNotification(LowBalanceEventArgs e)
 {
     UserBalanceWarning?.Invoke(this, e);
 }