Advertisement
Guest User

Fixed frofro's retard BD

a guest
Nov 23rd, 2017
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. using System.Data.Common;
  2. using JetBrains.Annotations;
  3. using System.Collections.Generic;
  4.  
  5. namespace TalesOfAscaria
  6. {
  7. public sealed class SqLiteAchievementReader
  8. {
  9. private readonly Achievement[] achievements;
  10. private readonly DbConnection dbConnection;
  11.  
  12. public SqLiteAchievementReader([NotNull] DbConnection dbConnection, [NotNull] Achievement[] achievements)
  13. {
  14. this.dbConnection = dbConnection;
  15. this.dbConnection.Open();
  16. this.achievements = achievements;
  17. }
  18.  
  19. /// <summary>
  20. /// Update the save of the achievements for a given player
  21. /// </summary>
  22. /// <param name="idPlayer">The ID of the player in the BD</param>
  23. /// <returns>True if the save worked, false otherwise</returns>
  24. public AchievementSaveStatus ReadCompletedAchievement(int idPlayer)
  25. {
  26. List<Achievement> allCompletedAchievements = ReadAchievements(idPlayer);
  27.  
  28. dbConnection.Dispose();
  29.  
  30. return new AchievementSaveStatus(allCompletedAchievements);
  31. }
  32.  
  33. private List<Achievement> ReadAchievements(int idPlayer)
  34. {
  35. List<Achievement> completedAchievements = new List<Achievement>();
  36.  
  37. DbCommand nullCheck = dbConnection.CreateCommand();
  38. nullCheck.CommandText = "SELECT 1 FROM Player WHERE ID = " + idPlayer;
  39. DbDataReader nullCheckReader = nullCheck.ExecuteReader();
  40. nullCheck.Dispose();
  41.  
  42. if (!nullCheckReader.Read())
  43. {
  44. nullCheckReader.Dispose();
  45. return completedAchievements;
  46. }
  47.  
  48. nullCheckReader.Dispose();
  49.  
  50. DbCommand command = dbConnection.CreateCommand();
  51. command.CommandText = "SELECT fk_achievement FROM PlayerHasAchivement WHERE fk_player = " + idPlayer;
  52. DbDataReader achievementReader = command.ExecuteReader();
  53. command.Dispose();
  54.  
  55. while (achievementReader.Read())
  56. {
  57. completedAchievements.Add(achievementReader.GetInt32(achievementReader.GetOrdinal("fk_achievement")));
  58. }
  59.  
  60. achievementReader.Dispose();
  61.  
  62. return completedAchievements;
  63. }
  64.  
  65. private Achievement BuildAchievement(int idAchievement)
  66. {
  67.  
  68. Achievement achievement = null;
  69.  
  70. for (int i = 0; i < achievements.Length; i++)
  71. {
  72. if (achievementID == achievements[i].AchievementIndex)
  73. {
  74. achievement = achievements[i];
  75. }
  76. }
  77. return achievement;
  78. }
  79. }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement