Skip to content

Commit

Permalink
Merge pull request #615 from mbbsemu/default-keys-on-reset
Browse files Browse the repository at this point in the history
Apply Default Keys on -DBRESET
  • Loading branch information
paladine authored Jan 1, 2024
2 parents 3628d9e + 78f0740 commit 8e02afd
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 27 deletions.
7 changes: 2 additions & 5 deletions MBBSEmu/Database/Repositories/Account/AccountRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,9 @@ namespace MBBSEmu.Database.Repositories.Account
/// <summary>
/// Repository Pattern for the MBBSEmu Account Database
/// </summary>
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);
Expand Down
24 changes: 14 additions & 10 deletions MBBSEmu/Database/Repositories/AccountKey/AccountKeyRepository.cs
Original file line number Diff line number Diff line change
@@ -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);
Expand Down Expand Up @@ -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);
}
}
}
}
16 changes: 4 additions & 12 deletions MBBSEmu/Database/Repositories/RepositoryBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,32 +14,24 @@ namespace MBBSEmu.Database.Repositories
///
/// Holds common Dapper Functionality for executing Queries
/// </summary>
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()
{
_connection.Close();
_connection.Dispose();
}

protected RepositoryBase(ISessionBuilder sessionBuilder, IResourceManager resourceManager)
{
_connection = sessionBuilder.GetConnection();
_resourceManager = resourceManager;
}

public IEnumerable<T> Query<T>(object enumQuery, object parameters)
{
return _connection.Query<T>(_resourceManager.GetString($"{SqlQueryAttribute.Get(enumQuery)}"), parameters);
return _connection.Query<T>(resourceManager.GetString($"{SqlQueryAttribute.Get(enumQuery)}"), parameters);
}

public IEnumerable<dynamic> Query(object enumQuery, object parameters)
{
var sql = _resourceManager.GetString($"{SqlQueryAttribute.Get(enumQuery)}");
var sql = resourceManager.GetString($"{SqlQueryAttribute.Get(enumQuery)}");
return _connection.Query(sql, parameters);
}

Expand Down

0 comments on commit 8e02afd

Please sign in to comment.