50 lines
1.4 KiB
C#
50 lines
1.4 KiB
C#
using GameModel;
|
|
using GameModel.Contract;
|
|
using GameModel.Settings;
|
|
using Microsoft.Extensions.Logging;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace GameData.Repository
|
|
{
|
|
public class ExpenseRepository : IExpenseRepository
|
|
{
|
|
readonly ILogger<ExpenseRepository> _log;
|
|
private ApiClient _client;
|
|
|
|
string UrlExpense => "items/expense";
|
|
string UrlPlayerExpense => "items/playerexpense";
|
|
List<PlayerExpense> _memberExpenses = new List<PlayerExpense>();
|
|
|
|
public ExpenseRepository(ILogger<ExpenseRepository> log, ApiClient apiClient)
|
|
{
|
|
_log = log;
|
|
_client = apiClient;
|
|
|
|
_log?.LogDebug("creating ExpenseRepository");
|
|
}
|
|
|
|
public async Task<IEnumerable<Expense>> GetAll()
|
|
{
|
|
return await _client.Get<Expense>(UrlExpense);
|
|
}
|
|
|
|
public async Task<PlayerExpense> Save(PlayerExpense memberExpense)
|
|
{
|
|
return await _client.Post<PlayerExpense>(memberExpense, UrlPlayerExpense);
|
|
}
|
|
|
|
public async Task Delete(IEnumerable<PlayerExpense> items)
|
|
{
|
|
dynamic keys = new JObject();
|
|
keys.keys = new JArray(items.Select(_ => _.Id));
|
|
|
|
await _client.Delete(keys, UrlPlayerExpense);
|
|
}
|
|
}
|
|
}
|