using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Storage; using RecNet.Domain.Entities.Configuration; using RecNet.Domain.Repositories; namespace RecNet.Infrastructure.Persistence.Repositories; public class ServerConfigRepository(DatabaseContext dbContext) : IServerConfigRepository { public Task GetAsync(string key, CancellationToken ct = default) => dbContext.ServerConfigs .FirstOrDefaultAsync(x => x.Key == key, ct); public async Task SetAsync(string key, string value, CancellationToken ct = default) { var config = await GetAsync(key, ct); if (config is null) { config = ServerConfig.Create(key, value); await dbContext.ServerConfigs.AddAsync(config, ct); return; } config.SetValue(value); } public Task SaveChangesAsync(CancellationToken ct = default) => dbContext.SaveChangesAsync(ct); }