Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Data.Common;
- using JetBrains.Annotations;
- using System.Collections.Generic;
- namespace TalesOfAscaria
- {
- public sealed class SqLiteAchievementReader
- {
- private readonly Achievement[] achievements;
- private readonly DbConnection dbConnection;
- public SqLiteAchievementReader([NotNull] DbConnection dbConnection, [NotNull] Achievement[] achievements)
- {
- this.dbConnection = dbConnection;
- this.dbConnection.Open();
- this.achievements = achievements;
- }
- /// <summary>
- /// Update the save of the achievements for a given player
- /// </summary>
- /// <param name="idPlayer">The ID of the player in the BD</param>
- /// <returns>True if the save worked, false otherwise</returns>
- public AchievementSaveStatus ReadCompletedAchievement(int idPlayer)
- {
- List<Achievement> allCompletedAchievements = ReadAchievements(idPlayer);
- dbConnection.Dispose();
- return new AchievementSaveStatus(allCompletedAchievements);
- }
- private List<Achievement> ReadAchievements(int idPlayer)
- {
- List<Achievement> completedAchievements = new List<Achievement>();
- DbCommand nullCheck = dbConnection.CreateCommand();
- nullCheck.CommandText = "SELECT 1 FROM Player WHERE ID = " + idPlayer;
- DbDataReader nullCheckReader = nullCheck.ExecuteReader();
- nullCheck.Dispose();
- if (!nullCheckReader.Read())
- {
- nullCheckReader.Dispose();
- return completedAchievements;
- }
- nullCheckReader.Dispose();
- DbCommand command = dbConnection.CreateCommand();
- command.CommandText = "SELECT fk_achievement FROM PlayerHasAchivement WHERE fk_player = " + idPlayer;
- DbDataReader achievementReader = command.ExecuteReader();
- command.Dispose();
- while (achievementReader.Read())
- {
- completedAchievements.Add(achievementReader.GetInt32(achievementReader.GetOrdinal("fk_achievement")));
- }
- achievementReader.Dispose();
- return completedAchievements;
- }
- private Achievement BuildAchievement(int idAchievement)
- {
- Achievement achievement = null;
- for (int i = 0; i < achievements.Length; i++)
- {
- if (achievementID == achievements[i].AchievementIndex)
- {
- achievement = achievements[i];
- }
- }
- return achievement;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement