29 lines
925 B
C#
29 lines
925 B
C#
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Storage;
|
|
using RecNet.Domain.Configuration;
|
|
|
|
namespace RecNet.Infrastructure.Persistence.Repositories;
|
|
|
|
public class ServerConfigRepository(DatabaseContext dbContext) : IServerConfigRepository
|
|
{
|
|
public Task<ServerConfig?> 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);
|
|
} |