internal async Task <Dictionary <string, BadgeDefinition> > GetBadges() { Dictionary <string, BadgeDefinition> badges = new Dictionary <string, BadgeDefinition>(); using (IAsyncDbClient client = ConnectionProvider.GetConnection()) { using (IQuery query = client.CreateQuery("SELECT * FROM `badge_definitions`;")) { using (var reader = await query.ExecuteReaderAsync()) { while (await reader.ReadAsync()) { string code = reader.GetData <string>("code").ToUpper(); if (!badges.ContainsKey(code)) { badges.Add(code, new BadgeDefinition(code, reader.GetData <string>("required_right"))); } } } } } return(badges); }
internal async Task ProgressAchievement(int userId, string group, int newLevel, int newProgress) { using (IAsyncDbClient client = ConnectionProvider.GetConnection()) { using (IQuery query = client.CreateQuery("REPLACE INTO `user_achievements` VALUES ('@0', @1, '@2', '@3')", userId, group, newLevel, newProgress)) { await query.ExecuteNonQueryAsync(); } } }
internal async Task <UserCache> GetUserCache(int userId) { UserCache userCache = null; using (IAsyncDbClient client = ConnectionProvider.GetConnection()) { using (IQuery query = client.CreateQuery("SELECT `username`, `motto`, `look` FROM users WHERE id = @0 LIMIT 1", userId)) { using (var reader = await query.ExecuteReaderAsync()) while (await reader.ReadAsync()) { userCache = new UserCache( userId, reader.GetData <string>("username"), reader.GetData <string>("motto"), reader.GetData <string>("look")); } } } return(userCache); }
public async Task <Dictionary <string, Achievement> > GetAchievementLevelsAsync() { Dictionary <string, Achievement> achievements = new Dictionary <string, Achievement>(); using (IAsyncDbClient client = ConnectionProvider.GetConnection()) { using (IQuery query = client.CreateQuery("SELECT `id`,`category`,`group_name`,`level`,`reward_pixels`,`reward_points`,`progress_needed`,`game_id` FROM `achievements`")) { using (var reader = await query.ExecuteReaderAsync()) { while (await reader.ReadAsync()) { uint id = reader.GetData <uint>("id"); string category = reader.GetData <string>("category"); string groupName = reader.GetData <string>("group_name"); int rewardPixels = reader.GetData <int>("reward_pixels"); int rewardPoints = reader.GetData <int>("reward_points"); int progressNeeded = reader.GetData <int>("progress_needed"); AchievementLevel level = new AchievementLevel(reader.GetData <int>("level"), rewardPixels, rewardPoints, progressNeeded); if (!achievements.ContainsKey(groupName)) { Achievement achievement = new Achievement((int)id, groupName, category, reader.GetData <int>("game_id")); achievement.AddLevel(level); achievements.Add(groupName, achievement); } else { achievements[groupName].AddLevel(level); } } } } } return(achievements); }
internal async Task <List <BotResponse> > GetResponses() { List <BotResponse> responses = new List <BotResponse>(); using (IAsyncDbClient dbclient = ConnectionProvider.GetConnection()) { using (IQuery query = dbclient.CreateQuery("SELECT `bot_ai`,`chat_keywords`,`response_text`,`response_mode`,`response_beverage` FROM `bots_responses`")) { using (var reader = await query.ExecuteReaderAsync()) while (await reader.ReadAsync()) { responses.Add(new BotResponse( reader.GetData <string>("bot_ai"), reader.GetData <string>("chat_keywords"), reader.GetData <string>("response_text"), reader.GetData <string>("response_mode"), reader.GetData <string>("response_beverage"))); } } } return(responses); }