public async Task <IDatabaseUser> RetrieveUserFromTableAsync(Enums.DatabaseTables table, string userId) { if (userId == null) { return(null); } if (RetrieveConnection.State != ConnectionState.Open) { RetrieveConnection.Open(); } var retrievingTable = table.ToString(); Log.Debug("Retrieving {userId} from table {table}", userId, retrievingTable); //TODO: add QueryFirstOrDefault after you know what default returns var output = (await RetrieveConnection.QueryAsync <DatabaseUser>( $"SELECT * FROM {retrievingTable} WHERE UserID = @UserId ", new { RetrievingTable = retrievingTable, UserId = userId }).ConfigureAwait(false)).ToList(); if (output.Any()) { return(output.First()); } Log.Warning("{userId} not in table {table}", userId, retrievingTable); return(null); }
public async Task <List <IDatabaseUser> > RetrieveNumberOfUsersFromTableAsync (Enums.DatabaseTables table, int limit, Enums.DatabaseUserPointsOrderRow orderRow = Enums.DatabaseUserPointsOrderRow.None) { if (RetrieveConnection.State != ConnectionState.Open) { RetrieveConnection.Open(); } var retrievingTable = table.ToString(); Log.Debug("Retrieving all users from table {table}", retrievingTable); var orderString = ""; if (orderRow != Enums.DatabaseUserPointsOrderRow.None) { orderString = $"ORDER BY {orderRow.ToString()}"; } if (table != Enums.DatabaseTables.UserPoints && orderRow != Enums.DatabaseUserPointsOrderRow.None) { throw new Exception("Bad parameter. When using other than UserPoints table orderRow needs to be None."); } var output = (await RetrieveConnection.QueryAsync <DatabaseUser>( $"SELECT * FROM {retrievingTable} {orderString} DESC LIMIT {limit}", new DynamicParameters()).ConfigureAwait(false)).ToList(); var results = output.ToList <IDatabaseUser>(); if (output.Any()) { return(results); } Log.Warning("{table} table is empty!", retrievingTable); return(null); }
public async Task <List <IDatabaseUser> > RetrieveAllUsersFromTableAsync(Enums.DatabaseTables table) { if (RetrieveConnection.State != ConnectionState.Open) { RetrieveConnection.Open(); } var retrievingTable = table.ToString(); Log.Debug("Retrieving all users from table {table}", retrievingTable); var output = (await RetrieveConnection.QueryAsync <DatabaseUser>($"SELECT * FROM {retrievingTable}", new DynamicParameters()).ConfigureAwait(false)).ToList(); var results = output.ToList <IDatabaseUser>(); if (output.Any()) { return(results); } Log.Warning("{table} table is empty!", retrievingTable); return(null); }