public static void CreateTransaction(IAccount account, IAccount account2, decimal amount, string type) { string transactionInfo; int accountno = account.Accountno; int customerId = account.Accountno; switch (type) { case "Deposit": transactionInfo = $"Deposit {amount} to accountno: {account.Accountno}"; break; case "Withdraw": transactionInfo = $"Withdraw {amount} from accountno: {account.Accountno}"; break; case "Transfer": transactionInfo = $"Transfer {amount} from: {account.Accountno} to: {account2.Accountno}"; break; case "Received": transactionInfo = $"Received {amount} from: {account.Accountno}"; accountno = account2.Accountno; customerId = account2.Accountno; break; default: transactionInfo = $"Transaction info is invalid"; break; } Transaction transaction = new Transaction() { TransactionNo = Transaction.GenerateTransactionNo(), TransactionInfo = transactionInfo, AccountNo = accountno, CustomerId = customerId, Time = DateTime.Now }; transactions.Add(transaction); // add to transactions // add to transaction inside an account }