diff --git a/MBBSEmu/Database/Repositories/Account/AccountRepository.cs b/MBBSEmu/Database/Repositories/Account/AccountRepository.cs index f0886d75..a36c31b4 100644 --- a/MBBSEmu/Database/Repositories/Account/AccountRepository.cs +++ b/MBBSEmu/Database/Repositories/Account/AccountRepository.cs @@ -12,12 +12,9 @@ namespace MBBSEmu.Database.Repositories.Account /// /// Repository Pattern for the MBBSEmu Account Database /// - public class AccountRepository : RepositoryBase, IAccountRepository + public class AccountRepository(ISessionBuilder sessionBuilder, IResourceManager resourceManager) + : RepositoryBase(sessionBuilder, resourceManager), IAccountRepository { - public AccountRepository(ISessionBuilder sessionBuilder, IResourceManager resourceManager) : base(sessionBuilder, resourceManager) - { - } - public bool CreateTable() { var result = Query(EnumQueries.CreateAccountsTable, null); diff --git a/MBBSEmu/Database/Repositories/AccountKey/AccountKeyRepository.cs b/MBBSEmu/Database/Repositories/AccountKey/AccountKeyRepository.cs index 320e605f..d618afb5 100644 --- a/MBBSEmu/Database/Repositories/AccountKey/AccountKeyRepository.cs +++ b/MBBSEmu/Database/Repositories/AccountKey/AccountKeyRepository.cs @@ -1,18 +1,15 @@ using MBBSEmu.Database.Repositories.AccountKey.Model; using MBBSEmu.Database.Repositories.AccountKey.Queries; using MBBSEmu.Database.Session; +using MBBSEmu.Resources; using System.Collections.Generic; using System.Linq; -using MBBSEmu.Resources; namespace MBBSEmu.Database.Repositories.AccountKey { - public class AccountKeyRepository : RepositoryBase, IAccountKeyRepository + public class AccountKeyRepository(ISessionBuilder sessionBuilder, IResourceManager resourceManager, AppSettingsManager appSettingsManager) + : RepositoryBase(sessionBuilder, resourceManager), IAccountKeyRepository { - public AccountKeyRepository(ISessionBuilder sessionBuilder, IResourceManager resourceManager) : base(sessionBuilder, resourceManager) - { - } - public bool CreateTable() { var result = Query(EnumQueries.CreateAccountKeysTable, null); @@ -69,14 +66,21 @@ public void Reset() CreateTable(); //Keys for SYSOP - InsertAccountKeyByUsername("sysop", "DEMO"); - InsertAccountKeyByUsername("sysop", "NORMAL"); InsertAccountKeyByUsername("sysop", "SUPER"); InsertAccountKeyByUsername("sysop", "SYSOP"); + ApplyDefaultAccountKeys("sysop"); + //Keys for GUEST - InsertAccountKeyByUsername("guest", "DEMO"); - InsertAccountKeyByUsername("guest", "NORMAL"); + ApplyDefaultAccountKeys("guest"); + return; + + //Local Function to apply default account keys defined in AppSettingsManager + void ApplyDefaultAccountKeys(string userName) + { + foreach (var accountKey in appSettingsManager.DefaultKeys) + InsertAccountKeyByUsername(userName, accountKey); + } } } } diff --git a/MBBSEmu/Database/Repositories/RepositoryBase.cs b/MBBSEmu/Database/Repositories/RepositoryBase.cs index 8d951ae0..8c450872 100644 --- a/MBBSEmu/Database/Repositories/RepositoryBase.cs +++ b/MBBSEmu/Database/Repositories/RepositoryBase.cs @@ -14,11 +14,9 @@ namespace MBBSEmu.Database.Repositories /// /// Holds common Dapper Functionality for executing Queries /// - public abstract class RepositoryBase : IRepositoryBase, IDisposable + public abstract class RepositoryBase(ISessionBuilder sessionBuilder, IResourceManager resourceManager) : IRepositoryBase, IDisposable { - private readonly IResourceManager _resourceManager; - - private readonly DbConnection _connection; + private readonly DbConnection _connection = sessionBuilder.GetConnection(); public void Dispose() { @@ -26,20 +24,14 @@ public void Dispose() _connection.Dispose(); } - protected RepositoryBase(ISessionBuilder sessionBuilder, IResourceManager resourceManager) - { - _connection = sessionBuilder.GetConnection(); - _resourceManager = resourceManager; - } - public IEnumerable Query(object enumQuery, object parameters) { - return _connection.Query(_resourceManager.GetString($"{SqlQueryAttribute.Get(enumQuery)}"), parameters); + return _connection.Query(resourceManager.GetString($"{SqlQueryAttribute.Get(enumQuery)}"), parameters); } public IEnumerable Query(object enumQuery, object parameters) { - var sql = _resourceManager.GetString($"{SqlQueryAttribute.Get(enumQuery)}"); + var sql = resourceManager.GetString($"{SqlQueryAttribute.Get(enumQuery)}"); return _connection.Query(sql, parameters); }