Add server configuration service and repo

This commit is contained in:
Holden
2026-06-18 13:43:59 -05:00
parent 7fc7e1dc91
commit 608def3ac8
15 changed files with 272 additions and 9 deletions

View File

@@ -20,7 +20,10 @@ public class ProfileRepository(DatabaseContext dbContext) : IProfileRepository
.Where(x => profileIds.Contains(x.ProfileId))
.ToListAsync(ct);
public Task<Profile?> GetByPlatform(PlatformType platform, string platformId, CancellationToken ct = default)
public Task<Profile?> GetByPlatform(
PlatformType platform,
string platformId,
CancellationToken ct = default)
=> dbContext.Profiles
.FirstOrDefaultAsync(x =>
x.Platform == platform &&

View File

@@ -0,0 +1,30 @@
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<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);
}