/// <summary> /// GetTransfers returns a list of TransferListObjects where the user account matches either /// the account to or account from on the transfers table in db /// </summary> public List <TransferListObject> GetTransfers(int userId) { List <TransferListObject> transfers = new List <TransferListObject>(); try { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); string sqlQuery = "SELECT t.transfer_id, t.account_to, t.amount FROM users u JOIN accounts a ON u.user_id = a.user_id JOIN transfers t ON a.account_id = t.account_from WHERE u.user_id = @userid"; SqlCommand cmd = new SqlCommand(sqlQuery, conn); cmd.Parameters.AddWithValue("@userid", userId); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { TransferListObject t = GetTLOTFromReader(reader); string toName = GetUsernameForAccount(t.AccountId); t.ToFromUser = $"To: {toName}"; transfers.Add(t); } } } catch (SqlException) { throw; } try { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); string sqlQuery = "SELECT t.transfer_id, t.account_from, t.amount FROM users u JOIN accounts a ON u.user_id = a.user_id JOIN transfers t ON a.account_id = t.account_to WHERE u.user_id = @userid"; SqlCommand cmd = new SqlCommand(sqlQuery, conn); cmd.Parameters.AddWithValue("@userid", userId); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { TransferListObject t = GetTLOFFromReader(reader); string fromName = GetUsernameForAccount(t.AccountId); t.ToFromUser = $"From: {fromName}"; transfers.Add(t); } } } catch (SqlException) { throw; } return(transfers); }
/// <summary> /// GetTLOFFromReader is a helper method to create a TransferListObject from SQL data /// TLOF - TransferListObject From /// </summary> private TransferListObject GetTLOFFromReader(SqlDataReader reader) { TransferListObject t = new TransferListObject() { TransferId = Convert.ToInt32(reader["transfer_id"]), AccountId = Convert.ToInt32(reader["account_from"]), Amount = Convert.ToDecimal(reader["amount"]), }; return(t); }