Ajout des listes et méthodes de persistance avec le constructeur

pull/86/head
Rémi LAVERGNE 11 months ago
parent ef91eac896
commit 0e7c323e6c
No known key found for this signature in database
GPG Key ID: CA264B55E97FD220

@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Models\Models.csproj" />
</ItemGroup>
</Project>

@ -0,0 +1,13 @@
using System.Collections.ObjectModel;
using Models.Game;
namespace DataContractPersistence
{
public class DataToPersist
{
public List<Player> Players { get; set; }
public List<Game> Games { get; set; }
public List<Map> Maps { get; set; }
public List<BestScore> BestScores { get; set; }
}
}

@ -6,6 +6,7 @@ using System.Threading.Tasks;
using System.Threading.Tasks.Dataflow; using System.Threading.Tasks.Dataflow;
using Models.Events; using Models.Events;
using Models.Exceptions; using Models.Exceptions;
using Models.Interfaces;
using Models.Rules; using Models.Rules;
namespace Models.Game namespace Models.Game
@ -16,6 +17,15 @@ namespace Models.Game
/// </summary> /// </summary>
public class Game public class Game
{ {
/* Persistence */
public IPersistence PersistenceManager { get; set; }
/* List for the game and persistence */
public List<Player> Players { get; set; }
public List<Game> Games { get; set; }
public List<Map> Maps { get; set; }
public List<BestScore> BestScores { get; set; }
private bool _isRunning; private bool _isRunning;
public Player CurrentPlayer { get; private set; } public Player CurrentPlayer { get; private set; }
@ -36,6 +46,61 @@ namespace Models.Game
public event EventHandler<DiceRolledEventArgs> DiceRolled; public event EventHandler<DiceRolledEventArgs> DiceRolled;
public event EventHandler<OperationChosenEventArgs> OperationChosen; public event EventHandler<OperationChosenEventArgs> OperationChosen;
public event EventHandler<CellChosenEventArgs> CellChosen; public event EventHandler<CellChosenEventArgs> CellChosen;
public void AddPlayer(Player player)
{
Players.Add(player);
}
public void AddGame(Game game)
{
Games.Add(game);
}
public void AddMap(Map map)
{
Maps.Add(map);
}
public void AddBestScore(BestScore bestScore)
{
BestScores.Add(bestScore);
}
public void LoadData()
{
var data = PersistenceManager.LoadData();
foreach (var player in data.Item1)
{
Players.Add(player);
}
foreach (var game in data.Item2)
{
Games.Add(game);
}
foreach (var map in data.Item3)
{
Maps.Add(map);
}
foreach (var bestScore in data.Item4)
{
BestScores.Add(bestScore);
}
}
public void SaveData() => PersistenceManager.SaveData(Players, Games, Maps, BestScores);
public Game(IPersistence persistenceManager)
{
PersistenceManager = persistenceManager;
Players = new List<Player>();
Games = new List<Game>();
Maps = new List<Map>();
BestScores = new List<BestScore>();
_isRunning = false;
}
/// <summary> /// <summary>

Loading…
Cancel
Save