dev
This commit is contained in:
parent
0f4703dc12
commit
69049c6af1
|
|
@ -192,27 +192,25 @@ namespace GameData
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<T> Delete<T>(object payload, string serviceUrl, bool suppressExceptions = true)
|
public async Task Delete(object payload, string serviceUrl, bool suppressExceptions = true)
|
||||||
{
|
{
|
||||||
T res = default;
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var response = await client.SendAsync(GetHttpRequestMessage(HttpMethod.Delete, serviceUrl, payload));
|
var response = await client.SendAsync(GetHttpRequestMessage(HttpMethod.Delete, serviceUrl, payload));
|
||||||
|
|
||||||
if (response.IsSuccessStatusCode)
|
if (response.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
using (var responseStream = await response.Content.ReadAsStreamAsync())
|
//using (var responseStream = await response.Content.ReadAsStreamAsync())
|
||||||
{
|
//{
|
||||||
using (var streamReader = new StreamReader(responseStream))
|
// using (var streamReader = new StreamReader(responseStream))
|
||||||
{
|
// {
|
||||||
using (var jsonTextReader = new JsonTextReader(streamReader))
|
// using (var jsonTextReader = new JsonTextReader(streamReader))
|
||||||
{
|
// {
|
||||||
var serializer = new JsonSerializer();
|
// var serializer = new JsonSerializer();
|
||||||
res = serializer.Deserialize<T>(jsonTextReader);
|
// res = serializer.Deserialize<T>(jsonTextReader);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -229,7 +227,7 @@ namespace GameData
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
//return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<T[]> Get<T>(string serviceUrl, bool suppressExceptions = false)
|
public async Task<T[]> Get<T>(string serviceUrl, bool suppressExceptions = false)
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,11 @@ namespace GameData.Dummy
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Task Delete(IEnumerable<PlayerExpense> enumerable)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
public IEnumerable<Expense> GetAll()
|
public IEnumerable<Expense> GetAll()
|
||||||
{
|
{
|
||||||
return IExpenseRepository.TestData;
|
return IExpenseRepository.TestData;
|
||||||
|
|
|
||||||
|
|
@ -47,5 +47,10 @@ namespace GameData.Dummy
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Task Delete(IEnumerable<GameState> gameStates)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
using GameModel.Contract;
|
using GameModel.Contract;
|
||||||
using GameModel.Settings;
|
using GameModel.Settings;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
|
using Newtonsoft.Json.Linq;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
@ -36,5 +37,13 @@ namespace GameData.Repository
|
||||||
{
|
{
|
||||||
return await _client.Post<PlayerExpense>(memberExpense, UrlPlayerExpense);
|
return await _client.Post<PlayerExpense>(memberExpense, UrlPlayerExpense);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task Delete(IEnumerable<PlayerExpense> items)
|
||||||
|
{
|
||||||
|
dynamic keys = new JObject();
|
||||||
|
keys.keys = items.Select(_ => _.Id).ToArray();
|
||||||
|
|
||||||
|
await _client.Delete(keys, UrlPlayerExpense);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -94,5 +94,13 @@ namespace GameData.Repository
|
||||||
|
|
||||||
return await _client.Post<Game>(payload, UrlGame);
|
return await _client.Post<Game>(payload, UrlGame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task Delete(IEnumerable<GameState> gameStates)
|
||||||
|
{
|
||||||
|
dynamic keys = new JObject();
|
||||||
|
keys.keys = gameStates.Select(_ => _.Id).ToArray();
|
||||||
|
|
||||||
|
await _client.Delete(keys, UrlGameState);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
using GameModel;
|
using GameModel;
|
||||||
using GameModel.Contract;
|
using GameModel.Contract;
|
||||||
using GameModel.Contracts;
|
using GameModel.Contracts;
|
||||||
|
using Microsoft.VisualBasic.FileIO;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
@ -31,7 +32,7 @@ namespace GameHandler
|
||||||
|
|
||||||
private List<GameStateHandlerItem<GameState>> redoableGameStates = new List<GameStateHandlerItem<GameState>>();
|
private List<GameStateHandlerItem<GameState>> redoableGameStates = new List<GameStateHandlerItem<GameState>>();
|
||||||
private List<GameStateHandlerItem<ExpenseModel>> redoableExpenseModels = new List<GameStateHandlerItem<ExpenseModel>>();
|
private List<GameStateHandlerItem<ExpenseModel>> redoableExpenseModels = new List<GameStateHandlerItem<ExpenseModel>>();
|
||||||
private List<GameStateHandlerItem<PlayerExpense>> redoableemberExpenses = new List<GameStateHandlerItem<PlayerExpense>>();
|
private List<GameStateHandlerItem<PlayerExpense>> redoableMeberExpenses = new List<GameStateHandlerItem<PlayerExpense>>();
|
||||||
|
|
||||||
private IGameRepository _gameRepository;
|
private IGameRepository _gameRepository;
|
||||||
private IExpenseRepository _expenseRepository;
|
private IExpenseRepository _expenseRepository;
|
||||||
|
|
@ -90,7 +91,22 @@ namespace GameHandler
|
||||||
await Save(item);
|
await Save(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await DeleteRedoableStates();
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task DeleteRedoableStates()
|
||||||
|
{
|
||||||
|
if (redoableGameStates.Count > 0)
|
||||||
|
{
|
||||||
|
await _gameRepository.Delete(redoableGameStates.Select(_ => _.Data));
|
||||||
|
redoableGameStates.Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (redoableMeberExpenses.Count > 0)
|
||||||
|
{
|
||||||
|
await _expenseRepository.Delete(redoableMeberExpenses.Select(_ => _.Data));
|
||||||
|
redoableMeberExpenses.Clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task Save(GameStateHandlerItem<PlayerExpense> item)
|
private async Task Save(GameStateHandlerItem<PlayerExpense> item)
|
||||||
|
|
@ -127,11 +143,11 @@ namespace GameHandler
|
||||||
|
|
||||||
gameStates.AddRange(redoableGameStates.Where(_ => _.GameStateId == redoId));
|
gameStates.AddRange(redoableGameStates.Where(_ => _.GameStateId == redoId));
|
||||||
expenseModels.AddRange(redoableExpenseModels.Where(_ => _.GameStateId == redoId));
|
expenseModels.AddRange(redoableExpenseModels.Where(_ => _.GameStateId == redoId));
|
||||||
memberExpenses.AddRange(redoableemberExpenses.Where(_ => _.GameStateId == redoId));
|
memberExpenses.AddRange(redoableMeberExpenses.Where(_ => _.GameStateId == redoId));
|
||||||
|
|
||||||
redoableGameStates.RemoveAll(_ => _.GameStateId == redoId);
|
redoableGameStates.RemoveAll(_ => _.GameStateId == redoId);
|
||||||
redoableExpenseModels.RemoveAll(_ => _.GameStateId == redoId);
|
redoableExpenseModels.RemoveAll(_ => _.GameStateId == redoId);
|
||||||
redoableemberExpenses.RemoveAll(_ => _.GameStateId == redoId);
|
redoableMeberExpenses.RemoveAll(_ => _.GameStateId == redoId);
|
||||||
}
|
}
|
||||||
|
|
||||||
_gameStateId = gameStates.Last().GameStateId;
|
_gameStateId = gameStates.Last().GameStateId;
|
||||||
|
|
@ -147,7 +163,7 @@ namespace GameHandler
|
||||||
|
|
||||||
redoableGameStates.AddRange(gameStates.Where(_ => _.GameStateId == _gameStateId));
|
redoableGameStates.AddRange(gameStates.Where(_ => _.GameStateId == _gameStateId));
|
||||||
redoableExpenseModels.AddRange(expenseModels.Where(_ => _.GameStateId == _gameStateId));
|
redoableExpenseModels.AddRange(expenseModels.Where(_ => _.GameStateId == _gameStateId));
|
||||||
redoableemberExpenses.AddRange(memberExpenses.Where(_ => _.GameStateId == _gameStateId));
|
redoableMeberExpenses.AddRange(memberExpenses.Where(_ => _.GameStateId == _gameStateId));
|
||||||
|
|
||||||
gameStates.RemoveAll(_ => _.GameStateId == _gameStateId);
|
gameStates.RemoveAll(_ => _.GameStateId == _gameStateId);
|
||||||
expenseModels.RemoveAll(_ => _.GameStateId == _gameStateId);
|
expenseModels.RemoveAll(_ => _.GameStateId == _gameStateId);
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ namespace GameModel.Contract
|
||||||
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.ExpensePoint }, "Strafpunkt, z.B. im \"Scheißspiel\"", 0.5m, false),
|
Expense.Create(ExpenseType.Monetary,new[] { ExpenseTrigger.ExpensePoint }, "Strafpunkt, z.B. im \"Scheißspiel\"", 0.5m, false),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Task Delete(IEnumerable<PlayerExpense> enumerable);
|
||||||
Task<IEnumerable<Expense>> GetAll();
|
Task<IEnumerable<Expense>> GetAll();
|
||||||
Task<PlayerExpense> Save(PlayerExpense data);
|
Task<PlayerExpense> Save(PlayerExpense data);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,5 +14,6 @@ namespace GameModel.Contracts
|
||||||
Task<Game> LoadGame(Guid gameId);
|
Task<Game> LoadGame(Guid gameId);
|
||||||
Task<GameState> Save(GameState gameState);
|
Task<GameState> Save(GameState gameState);
|
||||||
Task Update(Game game);
|
Task Update(Game game);
|
||||||
|
Task Delete(IEnumerable<GameState> gameStates);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue