using Jugenddienst_Stunden.Interfaces; using Jugenddienst_Stunden.Types; namespace Jugenddienst_Stunden.Services; internal class HoursService : IHoursService { private readonly IHoursRepository _repo; public HoursService(IHoursRepository repo) { _repo = repo; } public async Task<(Hours hours, Settings settings)> GetMonthSummaryAsync(DateTime monthDate) { string q = $"hours&year={monthDate:yyyy}&month={monthDate:MM}"; var baseRes = await _repo.LoadBase(q); return (baseRes.hour, baseRes.settings); } public async Task<(List dayTimes, Settings settings)> GetDayWithSettingsAsync(DateTime date) { string q = $"date={date:yyyy-MM-dd}"; var baseRes = await _repo.LoadBase(q); return (baseRes.daytimes ?? new List(), baseRes.settings); } public async Task> GetDayRangeAsync(DateTime from, DateTime to) { string q = $"date={from:yyyy-MM-dd}&tilldate={to:yyyy-MM-dd}"; var baseRes = await _repo.LoadBase(q); return baseRes.daytimes ?? new List(); } public async Task GetSettingsAsync() => await _repo.LoadSettings(); public async Task GetEntryAsync(int id) => await _repo.LoadEntry(id); public async Task SaveEntryAsync(DayTime stunde) => await _repo.SaveEntry(stunde); public async Task DeleteEntryAsync(DayTime stunde) => await _repo.DeleteEntry(stunde); }