Finished scoring system and started tests

This commit is contained in:
KäseToatz
2024-11-06 21:46:37 +01:00
parent 23ae45ba91
commit af7457a9d9
13 changed files with 265 additions and 50 deletions

View File

@ -6,6 +6,10 @@
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Data.SQLite" Version="1.0.119" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Memory.Logic\Memory.Logic.csproj" />
</ItemGroup>

View File

@ -1,9 +1,47 @@
using Memory.Logic;
using System.Data.SQLite;
namespace Memory.Data
{
public class ScoreHandler : IScoreHandler
{
public const string URI = "Data Source=Scores.db;Version=3;";
public ScoreHandler()
{
using SQLiteConnection connection = new(URI);
connection.Open();
using SQLiteCommand command = new("CREATE TABLE IF NOT EXISTS Scores(ID INTEGER PRIMARY KEY, Name TEXT, Points INTEGER)", connection);
command.ExecuteNonQuery();
connection.Close();
}
public List<Score> GetTopScores()
{
List<Score> scores = [];
using SQLiteConnection connection = new(URI);
connection.Open();
using SQLiteCommand command = new("SELECT Name, Points FROM Scores ORDER BY Points DESC LIMIT 10", connection);
using (SQLiteDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
scores.Add(new(reader.GetString(0), reader.GetInt32(1)));
}
}
connection.Close();
return scores;
}
public void WriteScore(Score score)
{
using SQLiteConnection connection = new(URI);
connection.Open();
using SQLiteCommand command = new("INSERT INTO Scores(Name, Points) VALUES(@Name, @Points)", connection);
command.Parameters.AddWithValue("@Name", score.Name);
command.Parameters.AddWithValue("@Points", score.Points);
command.ExecuteNonQuery();
connection.Close();
}
}
}