public IEnumerable <GameAchievement> GetGameDetails(UserAchievementRequest request) { using (SqlConnection connection = new SqlConnection(_connectionString)) { var gameId = request.GameId; var queryString = @"Select Game.Id as GameId, Achievement.Id as AchievementId, Game.Name as GameName, Game.Link, Achievement.Difficulty, Game.Image as GameImage, Achievement.Image as AchievementImage, Achievement.Difficulty, Achievement.Description, Achievement.DateAdded, Achievement.Name as AchievementName From Game Join Achievement ON Achievement.GameId = Game.Id Where Game.Id = @GameId AND Achievement.IsApproved = 1"; var gameAchievements = connection.Query <GameAchievement>(queryString, new { gameId }); var usersAchievements = new AchievementConnection(_dbConfig).GetUsersAchievementsForGame(request); //var achievementsWithCompletionStatus = from gA in gameAchievements // join uA in usersAchievements on gA.AchievementId equals uA.AchievementId; foreach (GameAchievement achievement in gameAchievements) { foreach (UserAchievement userAchievement in usersAchievements) { if (achievement.AchievementId == userAchievement.AchievementId) { achievement.Completed = true; } } } return(gameAchievements); } throw new Exception("Failed to get game details."); }
public ActionResult GetUsersAchievementsForGame(int userId, int gameId) { var request = new UserAchievementRequest() { UserId = userId, GameId = gameId }; var achievements = _connection.GetUsersAchievementsForGame(request); return(Accepted(achievements)); }
public ActionResult GetGameDetails(int gameId, int userId) { var request = new UserAchievementRequest() { GameId = gameId, UserId = userId }; var gameAchievements = _connection.GetGameDetails(request); return(Accepted(gameAchievements)); }
public IEnumerable <UserAchievement> GetUsersAchievementsForGame(UserAchievementRequest request) { using (SqlConnection connection = new SqlConnection(_connectionString)) { var queryString = @"Select UserAchievement.UserId, UserAchievement.AchievementId, Achievement.Difficulty From UserAchievement Join Achievement on UserAchievement.AchievementId = Achievement.Id Where UserAchievement.UserId = @UserId AND UserAchievement.IsApproved = 1 AND Achievement.GameId = @GameId"; var parameters = new { request.UserId, request.GameId }; var achievements = connection.Query <UserAchievement>(queryString, parameters); return(achievements); } throw new Exception("It didn't work."); }