diff --git a/.gitignore b/.gitignore
index a395674..796f9cd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,4 +16,5 @@ bin
obj
report
tools/
-TestResults
\ No newline at end of file
+TestResults
+/src/.vs
diff --git a/src/LittleTown.Blazor/LittleTown.Blazor.Client/Services/WasmStaticDataGetter.cs b/src/LittleTown.Blazor/LittleTown.Blazor.Client/Services/WasmStaticDataGetter.cs
index 9f113a4..de76970 100644
--- a/src/LittleTown.Blazor/LittleTown.Blazor.Client/Services/WasmStaticDataGetter.cs
+++ b/src/LittleTown.Blazor/LittleTown.Blazor.Client/Services/WasmStaticDataGetter.cs
@@ -1,4 +1,3 @@
-using System.Net.Http.Json;
using System.Text.Json;
using LittleTown.Core;
using LittleTown.Core.Ports;
@@ -33,16 +32,21 @@ public class WasmStaticDataGetter : IStaticDataGetter
}
///
- public Board GetBoard(int version)
+ public async Task GetBoardAsync(int version)
{
// Synchronous wrapper - not ideal but matches interface
- InitializeAsync().GetAwaiter().GetResult();
+ await InitializeAsync();
Board board = JsonSerializer.Deserialize(_boardData)
?? throw new JsonException("Cannot deserialize Board");
return board;
}
+ public Board GetBoard(int version)
+ {
+ throw new NotImplementedException("Use the asynchronous version of GetBoard for WebAssembly.");
+ }
+
///
public ICollection GetBuildings()
{
diff --git a/src/LittleTown.Blazor/LittleTown.Blazor/Components/App.razor b/src/LittleTown.Blazor/LittleTown.Blazor/Components/App.razor
index 1dca10f..024f23d 100644
--- a/src/LittleTown.Blazor/LittleTown.Blazor/Components/App.razor
+++ b/src/LittleTown.Blazor/LittleTown.Blazor/Components/App.razor
@@ -9,7 +9,6 @@
-
diff --git a/src/LittleTown.Core/Aggregates/MatchAggregate/Match.cs b/src/LittleTown.Core/Aggregates/MatchAggregate/Match.cs
index 1b15716..01c6a25 100644
--- a/src/LittleTown.Core/Aggregates/MatchAggregate/Match.cs
+++ b/src/LittleTown.Core/Aggregates/MatchAggregate/Match.cs
@@ -44,7 +44,7 @@ public class Match
{
ArgumentNullException.ThrowIfNull(staticData);
- _board = staticData.GetBoard(1);
+ _board = staticData.GetBoardAsync(1).GetAwaiter().GetResult();
_buildings = staticData.GetBuildings();
_objectives = staticData.GetObjectives();
}
diff --git a/src/LittleTown.Core/PortInterfaces/Inputs/IStaticDataGetter.cs b/src/LittleTown.Core/PortInterfaces/Inputs/IStaticDataGetter.cs
index 1e5f068..6829b43 100644
--- a/src/LittleTown.Core/PortInterfaces/Inputs/IStaticDataGetter.cs
+++ b/src/LittleTown.Core/PortInterfaces/Inputs/IStaticDataGetter.cs
@@ -5,6 +5,11 @@ namespace LittleTown.Core.Ports;
///
public interface IStaticDataGetter
{
+ /// Recuperer un plateau de jeu
+ /// la version du plateau (1 ou 2)
+ /// une instance du plateau avec les données statique
+ public Task GetBoardAsync(int version);
+
/// Recuperer un plateau de jeu
/// la version du plateau (1 ou 2)
/// une instance du plateau avec les données statique
diff --git a/src/LittleTown.StaticDataAccess/LittleTown.StaticDataAccess.csproj b/src/LittleTown.StaticDataAccess/LittleTown.StaticDataAccess.csproj
index 6241cd7..2748c16 100644
--- a/src/LittleTown.StaticDataAccess/LittleTown.StaticDataAccess.csproj
+++ b/src/LittleTown.StaticDataAccess/LittleTown.StaticDataAccess.csproj
@@ -1,4 +1,4 @@
-
+
net10.0
@@ -15,4 +15,11 @@
+
+
+
+ PreserveNewest
+
+
+
diff --git a/src/LittleTown.StaticDataAccess/StaticDataGetter.cs b/src/LittleTown.StaticDataAccess/StaticDataGetter.cs
index 9dad04f..2013fa6 100644
--- a/src/LittleTown.StaticDataAccess/StaticDataGetter.cs
+++ b/src/LittleTown.StaticDataAccess/StaticDataGetter.cs
@@ -26,12 +26,16 @@ public class StaticDataGetter : IStaticDataGetter
_buildingData = buildingData;
}
- /// Constructeur avec les chemins par défaut, à utiliser pour les tests seulement
+ /// Constructeur avec les chemins par défaut
public StaticDataGetter()
{
- string boardPath = Path.Combine(Environment.CurrentDirectory, "../../../src/LittleTown.StaticDataAccess/Data/Board1.json");
- string buildingPath = Path.Combine(Environment.CurrentDirectory, "../../../src/LittleTown.StaticDataAccess/Data/Buildings.json");
- string objectivesPath = Path.Combine(Environment.CurrentDirectory, "../../../src/LittleTown.StaticDataAccess/Data/Objectives.json");
+ // Les fichiers JSON sont copiés dans le dossier de build via le .csproj
+ // Ils sont donc toujours relatifs à l'exécutable
+ var baseDirectory = AppContext.BaseDirectory;
+ string boardPath = Path.Combine(baseDirectory, "Data", "Board1.json");
+ string buildingPath = Path.Combine(baseDirectory, "Data", "Buildings.json");
+ string objectivesPath = Path.Combine(baseDirectory, "Data", "Objectives.json");
+
ReadFiles(boardPath, buildingPath, objectivesPath);
}
@@ -49,6 +53,11 @@ public class StaticDataGetter : IStaticDataGetter
return board;
}
+ public Task GetBoardAsync(int version)
+ {
+ return Task.FromResult(GetBoard(version));
+ }
+
///
public ICollection GetBuildings()
{