using Koogle.Domain.Interfaces; using KoogleApp.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Logging; namespace KoogleApp.Data.Repository { public class DayRepository(IDbContextFactory contextFactory, ILogger logger) : IDayRepository { private readonly ILogger _logger = logger; public async Task> GetAllAsync(int year) { await using var context = await contextFactory.CreateDbContextAsync(); var res = await context.Days.Where(_ => _.PostDate >= new DateTime(year, 1, 1) && _.PostDate <= new DateTime(year, 12, 31)).ToListAsync(); return res; } public async Task GetActiveDayAsync() { await using var context = await contextFactory.CreateDbContextAsync(); var res = await context.Days.FirstOrDefaultAsync(_ => _.PostDate == DateTime.Today); return res; } public async Task AddAsync(Day day) { await using var context = await contextFactory.CreateDbContextAsync(); var res = await context.Days.AddAsync(day); await context.SaveChangesAsync(); return day; } public async Task UpdateAsync(Day day) { await using var context = await contextFactory.CreateDbContextAsync(); var res = context.Days.Update(day); await context.SaveChangesAsync(); return res.Entity; } } }