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? _log; private ApiClient _apiClient; string UrlExpense => "items/expense"; string UrlPlayerExpense => "items/playerexpense"; List _memberExpenses = new List(); public ExpenseRepository(ILogger log, ApiClient apiClient) { _log = log; _apiClient = apiClient; _log?.LogDebug("creating ExpenseRepository"); } public async Task> GetAll() { _log?.LogDebug("loading expenses from api"); var res = await _apiClient.Get(UrlExpense); return res; } public async Task Save(PlayerExpense memberExpense) { return await _apiClient.Post(memberExpense, UrlPlayerExpense); } public async Task Delete(IEnumerable items) { dynamic keys = new JObject(); keys.keys = new JArray(items.Select(_ => _.Id)); await _apiClient.Delete(keys, UrlPlayerExpense); } } }