diff --git a/KoogleApp/Components/Pages/Game.razor b/KoogleApp/Components/Pages/Game.razor
index 2ecb928..e3bab2d 100644
--- a/KoogleApp/Components/Pages/Game.razor
+++ b/KoogleApp/Components/Pages/Game.razor
@@ -62,15 +62,9 @@
-
-
-
-
-
-
Aktueller Text: @SharedText
-
+
@switch (_gameView)
{
case GameView.Throw:
@@ -87,16 +81,7 @@
break;
}
-
-
-
-
-
-
-
-
+
@code {
// private ThrowPanelState _throwPanelState = null;
@@ -111,21 +96,7 @@
private bool isAuthenticated;
- private string _sharedText = string.Empty;
-
- private bool _canSave = true;
-
- public string SharedText
- {
- get => _sharedText;
- set
- {
- if (_sharedText != value)
- {
- _sharedText = value;
- }
- }
- }
+
// private HubConnection? hubConnection;
diff --git a/KoogleApp/Services/GameStatusDataService.cs b/KoogleApp/Services/GameStatusDataService.cs
index 31d2daa..a4ca090 100644
--- a/KoogleApp/Services/GameStatusDataService.cs
+++ b/KoogleApp/Services/GameStatusDataService.cs
@@ -16,7 +16,7 @@ namespace KoogleApp.Services
bool CanUndo();
bool CanRedo();
- Task SaveToDatabaseAndReset();
+ Task SaveToDatabaseAndReset(GameStatus lastContent, string username);
void Initialize(GameStatus content, string username);
}
@@ -42,6 +42,14 @@ namespace KoogleApp.Services
{
lock (_lock)
{
+ if (_currentData == null)
+ {
+ return new GameStatusSnapshot
+ {
+ Version = -1
+ };
+ }
+
return new GameStatusSnapshot
{
Status = _currentData.Status,
@@ -52,8 +60,10 @@ namespace KoogleApp.Services
}
}
- public Task SaveToDatabaseAndReset()
+ public Task SaveToDatabaseAndReset(GameStatus lastContent, string username)
{
+ UpdateData(lastContent, username);
+
Initialize(null, "system");
if (File.Exists(_dataFilePath))
diff --git a/KoogleApp/Store/Game/ThrowPanel/Effects.cs b/KoogleApp/Store/Game/ThrowPanel/Effects.cs
index b199d2b..0cb8155 100644
--- a/KoogleApp/Store/Game/ThrowPanel/Effects.cs
+++ b/KoogleApp/Store/Game/ThrowPanel/Effects.cs
@@ -53,7 +53,9 @@ namespace KoogleApp.Store.Game.ThrowPanel
}
else // stop action
{
- await _dataService.SaveToDatabaseAndReset();
+ var username = await GetUsername();
+ await _dataService.SaveToDatabaseAndReset(new GameStatus { ThrowPanelState = _state.Value with { ThrowPanelStateStatus = ThrowPanelStateStatus.GameEnd } }, username);
+ dispatcher.Dispatch(new UpdateUndoRedoStateAction());
}
dispatcher.Dispatch(new ThrowPanelStateChangedAction(_state.Value, false));
@@ -188,7 +190,11 @@ namespace KoogleApp.Store.Game.ThrowPanel
if (state == null)
{
var data = _dataService.GetCurrentData();
- state = data.Status.ThrowPanelState;
+ if (data.Status != null)
+ {
+ state = data.Status.ThrowPanelState;
+ }
+
dispatcher.Dispatch(new UpdateUndoRedoStateAction());
}
diff --git a/KoogleApp/ThrowPanelState.json b/KoogleApp/ThrowPanelState.json
new file mode 100644
index 0000000..23c85c3
--- /dev/null
+++ b/KoogleApp/ThrowPanelState.json
@@ -0,0 +1,27 @@
+{
+ "IsStated": false,
+ "BellValue": false,
+ "Pin1Value": false,
+ "Pin2Value": false,
+ "Pin3Value": false,
+ "Pin4Value": false,
+ "Pin5Value": false,
+ "Pin6Value": false,
+ "Pin7Value": false,
+ "Pin8Value": false,
+ "Pin9Value": false,
+ "Pin1Disabled": false,
+ "Pin2Disabled": false,
+ "Pin3Disabled": false,
+ "Pin4Disabled": false,
+ "Pin5Disabled": false,
+ "Pin6Disabled": false,
+ "Pin7Disabled": false,
+ "Pin8Disabled": false,
+ "Pin9Disabled": false,
+ "ThrowsPerRound": 3,
+ "ThrowCounterPerRound": 1,
+ "ThrowMode": 0,
+ "ThrowPanelStateStatus": 4,
+ "ThrowCounter": 0
+}
\ No newline at end of file
diff --git a/KoogleApp/appdata.json b/KoogleApp/appdata.json
deleted file mode 100644
index 3a23954..0000000
--- a/KoogleApp/appdata.json
+++ /dev/null
@@ -1,175 +0,0 @@
-{
- "CurrentData": {
- "Status": {
- "ThrowPanelState": {
- "IsStated": true,
- "BellValue": false,
- "Pin1Value": false,
- "Pin2Value": false,
- "Pin3Value": false,
- "Pin4Value": false,
- "Pin5Value": false,
- "Pin6Value": false,
- "Pin7Value": false,
- "Pin8Value": false,
- "Pin9Value": true,
- "Pin1Disabled": false,
- "Pin2Disabled": false,
- "Pin3Disabled": false,
- "Pin4Disabled": false,
- "Pin5Disabled": false,
- "Pin6Disabled": false,
- "Pin7Disabled": false,
- "Pin8Disabled": false,
- "Pin9Disabled": true,
- "ThrowsPerRound": 3,
- "ThrowCounterPerRound": 3,
- "ThrowMode": 1,
- "ThrowPanelStateStatus": 3,
- "ThrowCounter": 2
- }
- },
- "Version": 5,
- "LastModified": "2025-11-11T14:25:20.7054454+01:00",
- "LastModifiedBy": "test1@test.de"
- },
- "UndoHistory": [
- {
- "Status": {
- "ThrowPanelState": {
- "IsStated": true,
- "BellValue": false,
- "Pin1Value": false,
- "Pin2Value": false,
- "Pin3Value": false,
- "Pin4Value": false,
- "Pin5Value": false,
- "Pin6Value": false,
- "Pin7Value": false,
- "Pin8Value": false,
- "Pin9Value": true,
- "Pin1Disabled": false,
- "Pin2Disabled": false,
- "Pin3Disabled": false,
- "Pin4Disabled": false,
- "Pin5Disabled": false,
- "Pin6Disabled": false,
- "Pin7Disabled": false,
- "Pin8Disabled": false,
- "Pin9Disabled": true,
- "ThrowsPerRound": 3,
- "ThrowCounterPerRound": 2,
- "ThrowMode": 1,
- "ThrowPanelStateStatus": 2,
- "ThrowCounter": 1
- }
- },
- "Version": 4,
- "LastModified": "2025-11-11T14:25:20.6996276+01:00",
- "LastModifiedBy": "test1@test.de"
- },
- {
- "Status": {
- "ThrowPanelState": {
- "IsStated": true,
- "BellValue": false,
- "Pin1Value": false,
- "Pin2Value": false,
- "Pin3Value": false,
- "Pin4Value": false,
- "Pin5Value": false,
- "Pin6Value": false,
- "Pin7Value": false,
- "Pin8Value": false,
- "Pin9Value": true,
- "Pin1Disabled": false,
- "Pin2Disabled": false,
- "Pin3Disabled": false,
- "Pin4Disabled": false,
- "Pin5Disabled": false,
- "Pin6Disabled": false,
- "Pin7Disabled": false,
- "Pin8Disabled": false,
- "Pin9Disabled": true,
- "ThrowsPerRound": 3,
- "ThrowCounterPerRound": 2,
- "ThrowMode": 1,
- "ThrowPanelStateStatus": 3,
- "ThrowCounter": 1
- }
- },
- "Version": 3,
- "LastModified": "2025-11-11T14:21:38.6653918+01:00",
- "LastModifiedBy": "test1@test.de"
- },
- {
- "Status": {
- "ThrowPanelState": {
- "IsStated": true,
- "BellValue": false,
- "Pin1Value": false,
- "Pin2Value": false,
- "Pin3Value": false,
- "Pin4Value": false,
- "Pin5Value": false,
- "Pin6Value": false,
- "Pin7Value": false,
- "Pin8Value": false,
- "Pin9Value": true,
- "Pin1Disabled": false,
- "Pin2Disabled": false,
- "Pin3Disabled": false,
- "Pin4Disabled": false,
- "Pin5Disabled": false,
- "Pin6Disabled": false,
- "Pin7Disabled": false,
- "Pin8Disabled": false,
- "Pin9Disabled": false,
- "ThrowsPerRound": 3,
- "ThrowCounterPerRound": 1,
- "ThrowMode": 1,
- "ThrowPanelStateStatus": 2,
- "ThrowCounter": 0
- }
- },
- "Version": 2,
- "LastModified": "2025-11-11T14:21:38.6623607+01:00",
- "LastModifiedBy": "test1@test.de"
- },
- {
- "Status": {
- "ThrowPanelState": {
- "IsStated": true,
- "BellValue": false,
- "Pin1Value": false,
- "Pin2Value": false,
- "Pin3Value": false,
- "Pin4Value": false,
- "Pin5Value": false,
- "Pin6Value": false,
- "Pin7Value": false,
- "Pin8Value": false,
- "Pin9Value": false,
- "Pin1Disabled": false,
- "Pin2Disabled": false,
- "Pin3Disabled": false,
- "Pin4Disabled": false,
- "Pin5Disabled": false,
- "Pin6Disabled": false,
- "Pin7Disabled": false,
- "Pin8Disabled": false,
- "Pin9Disabled": false,
- "ThrowsPerRound": 3,
- "ThrowCounterPerRound": 1,
- "ThrowMode": 1,
- "ThrowPanelStateStatus": 1,
- "ThrowCounter": 0
- }
- },
- "Version": 1,
- "LastModified": "2025-11-11T14:21:31.2803757+01:00",
- "LastModifiedBy": "test1@test.de"
- }
- ],
- "RedoHistory": []
-}
\ No newline at end of file
diff --git a/KoogleApp/readme.md b/KoogleApp/readme.md
index 68480fb..7b7cb87 100644
--- a/KoogleApp/readme.md
+++ b/KoogleApp/readme.md
@@ -5,4 +5,10 @@ Create Schema:
''' dotnet ef migrations add 001 --project KoogleApp
Update Database:
-''' dotnet ef database update -- Development --project KoogleApp
\ No newline at end of file
+''' dotnet ef database update -- Development --project KoogleApp
+
+
+
+## TODOs
+- Redo State after start / lode or game stop
+-
\ No newline at end of file