Add GameVersion domain and login validation

This commit is contained in:
Holden
2026-06-19 15:11:08 -05:00
parent 076fed09f2
commit 2cfc5e7369
31 changed files with 291 additions and 39 deletions

View File

@@ -1,6 +1,4 @@
using RecNet.Domain.Entities.Configuration;
namespace RecNet.Domain.Repositories;
namespace RecNet.Domain.Configuration;
public interface IServerConfigRepository
{

View File

@@ -1,6 +1,6 @@
using RecNet.Domain.Exceptions;
namespace RecNet.Domain.Entities.Configuration;
namespace RecNet.Domain.Configuration;
public class ServerConfig
{

View File

@@ -0,0 +1,31 @@
using RecNet.Domain.Exceptions;
namespace RecNet.Domain.GameVersions;
public class GameVersion
{
private GameVersion()
{
}
private GameVersion(string version, bool isValid)
{
Version = RequireValue(version, nameof(version));
IsValid = isValid;
}
public string Version { get; private set; } = string.Empty;
public bool IsValid { get; private set; }
public static GameVersion Create(string version, bool isValid)
=> new(version, isValid);
public void MarkValid()
=> IsValid = true;
public void MarkInvalid()
=> IsValid = false;
private static string RequireValue(string value, string parameterName)
=> !string.IsNullOrWhiteSpace(value) ? value : throw new DomainException($"{parameterName} is required.");
}

View File

@@ -0,0 +1,12 @@
namespace RecNet.Domain.GameVersions;
public interface IGameVersionRepository
{
Task<GameVersion?> GetAsync(string version, CancellationToken ct = default);
async Task<bool> IsValidAsync(string version, CancellationToken ct = default)
{
var gameVersion = await GetAsync(version, ct);
return gameVersion?.IsValid == true;
}
}

View File

@@ -1,7 +1,6 @@
using RecNet.Domain.Common;
using RecNet.Domain.Entities.Profiles;
namespace RecNet.Domain.Repositories;
namespace RecNet.Domain.Profiles;
public interface IProfileRepository
{

View File

@@ -1,4 +1,4 @@
namespace RecNet.Domain.Entities.Profiles.Names;
namespace RecNet.Domain.Profiles.Names;
public static class DefaultNameGenConfig
{

View File

@@ -1,4 +1,4 @@
namespace RecNet.Domain.Entities.Profiles.Names;
namespace RecNet.Domain.Profiles.Names;
public class NameGenConfig
{

View File

@@ -1,7 +1,7 @@
using RecNet.Domain.Common;
using RecNet.Domain.Exceptions;
namespace RecNet.Domain.Entities.Profiles;
namespace RecNet.Domain.Profiles;
public class Profile
{