dev
This commit is contained in:
parent
0f4703dc12
commit
69049c6af1
|
|
@ -192,27 +192,25 @@ namespace GameData
|
|||
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
|
||||
{
|
||||
var response = await client.SendAsync(GetHttpRequestMessage(HttpMethod.Delete, serviceUrl, payload));
|
||||
|
||||
if (response.IsSuccessStatusCode)
|
||||
{
|
||||
using (var responseStream = await response.Content.ReadAsStreamAsync())
|
||||
{
|
||||
using (var streamReader = new StreamReader(responseStream))
|
||||
{
|
||||
using (var jsonTextReader = new JsonTextReader(streamReader))
|
||||
{
|
||||
var serializer = new JsonSerializer();
|
||||
res = serializer.Deserialize<T>(jsonTextReader);
|
||||
}
|
||||
}
|
||||
}
|
||||
//using (var responseStream = await response.Content.ReadAsStreamAsync())
|
||||
//{
|
||||
// using (var streamReader = new StreamReader(responseStream))
|
||||
// {
|
||||
// using (var jsonTextReader = new JsonTextReader(streamReader))
|
||||
// {
|
||||
// var serializer = new JsonSerializer();
|
||||
// res = serializer.Deserialize<T>(jsonTextReader);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -229,7 +227,7 @@ namespace GameData
|
|||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
//return res;
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
return IExpenseRepository.TestData;
|
||||
|
|
|
|||
|
|
@ -47,5 +47,10 @@ namespace GameData.Dummy
|
|||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public Task Delete(IEnumerable<GameState> gameStates)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
using GameModel.Contract;
|
||||
using GameModel.Settings;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
|
@ -36,5 +37,13 @@ namespace GameData.Repository
|
|||
{
|
||||
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);
|
||||
}
|
||||
|
||||
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.Contract;
|
||||
using GameModel.Contracts;
|
||||
using Microsoft.VisualBasic.FileIO;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
|
@ -31,7 +32,7 @@ namespace GameHandler
|
|||
|
||||
private List<GameStateHandlerItem<GameState>> redoableGameStates = new List<GameStateHandlerItem<GameState>>();
|
||||
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 IExpenseRepository _expenseRepository;
|
||||
|
|
@ -90,7 +91,22 @@ namespace GameHandler
|
|||
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)
|
||||
|
|
@ -127,11 +143,11 @@ namespace GameHandler
|
|||
|
||||
gameStates.AddRange(redoableGameStates.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);
|
||||
redoableExpenseModels.RemoveAll(_ => _.GameStateId == redoId);
|
||||
redoableemberExpenses.RemoveAll(_ => _.GameStateId == redoId);
|
||||
redoableMeberExpenses.RemoveAll(_ => _.GameStateId == redoId);
|
||||
}
|
||||
|
||||
_gameStateId = gameStates.Last().GameStateId;
|
||||
|
|
@ -147,7 +163,7 @@ namespace GameHandler
|
|||
|
||||
redoableGameStates.AddRange(gameStates.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);
|
||||
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),
|
||||
};
|
||||
|
||||
Task Delete(IEnumerable<PlayerExpense> enumerable);
|
||||
Task<IEnumerable<Expense>> GetAll();
|
||||
Task<PlayerExpense> Save(PlayerExpense data);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,5 +14,6 @@ namespace GameModel.Contracts
|
|||
Task<Game> LoadGame(Guid gameId);
|
||||
Task<GameState> Save(GameState gameState);
|
||||
Task Update(Game game);
|
||||
Task Delete(IEnumerable<GameState> gameStates);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue