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);
}