1
0
mirror of https://github.com/RaidMax/IW4M-Admin.git synced 2025-06-10 15:20:48 -05:00

fix refactor issue

This commit is contained in:
RaidMax
2022-01-28 17:28:49 -06:00
parent 75d6417d64
commit bac343cdba
10 changed files with 44 additions and 47 deletions

View File

@ -38,7 +38,7 @@ namespace IW4MAdmin.Plugins.Stats.Helpers
private readonly ConcurrentDictionary<long, ServerStats> _servers;
private readonly ILogger _log;
private readonly IDatabaseContextFactory _contextFactory;
private readonly IConfigurationHandler<StatsConfiguration> _configHandler;
private readonly StatsConfiguration _config;
private static List<EFServer> serverModels;
public static string CLIENT_STATS_KEY = "ClientStats";
public static string CLIENT_DETECTIONS_KEY = "ClientDetections";
@ -47,13 +47,13 @@ namespace IW4MAdmin.Plugins.Stats.Helpers
private readonly IServerDistributionCalculator _serverDistributionCalculator;
public StatManager(ILogger<StatManager> logger, IManager mgr, IDatabaseContextFactory contextFactory,
IConfigurationHandler<StatsConfiguration> configHandler,
StatsConfiguration statsConfig,
IServerDistributionCalculator serverDistributionCalculator)
{
_servers = new ConcurrentDictionary<long, ServerStats>();
_log = logger;
_contextFactory = contextFactory;
_configHandler = configHandler;
_config = statsConfig;
_serverDistributionCalculator = serverDistributionCalculator;
}
@ -75,7 +75,7 @@ namespace IW4MAdmin.Plugins.Stats.Helpers
r.When > fifteenDaysAgo &&
r.RatingHistory.Client.Level != EFClient.Permission.Banned &&
r.Newest &&
r.ActivityAmount >= _configHandler.Configuration().TopPlayersMinPlayTime;
r.ActivityAmount >= _config.TopPlayersMinPlayTime;
}
/// <summary>
@ -87,7 +87,7 @@ namespace IW4MAdmin.Plugins.Stats.Helpers
{
await using var context = _contextFactory.CreateContext(enableTracking: false);
if (_configHandler.Configuration().EnableAdvancedMetrics)
if (_config.EnableAdvancedMetrics)
{
var clientRanking = await context.Set<EFClientRankingHistory>()
.Where(r => r.ClientId == clientId)
@ -126,7 +126,7 @@ namespace IW4MAdmin.Plugins.Stats.Helpers
&& ranking.PerformanceMetric != null
&& ranking.Newest
&& ranking.Client.TotalConnectionTime >=
_configHandler.Configuration().TopPlayersMinPlayTime;
_config.TopPlayersMinPlayTime;
}
public async Task<int> GetTotalRankedPlayers(long serverId)
@ -217,7 +217,7 @@ namespace IW4MAdmin.Plugins.Stats.Helpers
public async Task<List<TopStatsInfo>> GetTopStats(int start, int count, long? serverId = null)
{
if (_configHandler.Configuration().EnableAdvancedMetrics)
if (_config.EnableAdvancedMetrics)
{
return await GetNewTopStats(start, count, serverId);
}
@ -570,7 +570,7 @@ namespace IW4MAdmin.Plugins.Stats.Helpers
{
clientStats = UpdateStats(clientStats, pl);
await SaveClientStats(clientStats);
if (_configHandler.Configuration().EnableAdvancedMetrics)
if (_config.EnableAdvancedMetrics)
{
await UpdateHistoricalRanking(pl.ClientId, clientStats, serverId);
}
@ -973,7 +973,7 @@ namespace IW4MAdmin.Plugins.Stats.Helpers
// update their performance
if ((DateTime.UtcNow - attackerStats.LastStatHistoryUpdate).TotalMinutes >=
(Utilities.IsDevelopment ? 0.5 : _configHandler.Configuration().EnableAdvancedMetrics ? 5.0 : 2.5))
(Utilities.IsDevelopment ? 0.5 : _config.EnableAdvancedMetrics ? 5.0 : 2.5))
{
try
{
@ -982,7 +982,7 @@ namespace IW4MAdmin.Plugins.Stats.Helpers
// for stat history update, but one is already processing that invalidates the original
await attackerStats.ProcessingHit.WaitAsync(Utilities.DefaultCommandTimeout,
Plugin.ServerManager.CancellationToken);
if (_configHandler.Configuration().EnableAdvancedMetrics)
if (_config.EnableAdvancedMetrics)
{
await UpdateHistoricalRanking(attacker.ClientId, attackerStats, serverId);
}
@ -1190,7 +1190,7 @@ namespace IW4MAdmin.Plugins.Stats.Helpers
public async Task UpdateHistoricalRanking(int clientId, EFClientStatistics clientStats, long serverId)
{
await using var context = _contextFactory.CreateContext();
var minPlayTime = _configHandler.Configuration().TopPlayersMinPlayTime;
var minPlayTime = _config.TopPlayersMinPlayTime;
var performances = await context.Set<EFClientStatistics>()
.AsNoTracking()
@ -1208,7 +1208,7 @@ namespace IW4MAdmin.Plugins.Stats.Helpers
var serverRanking = await context.Set<EFClientStatistics>()
.Where(stats => stats.ClientId != clientStats.ClientId)
.Where(AdvancedClientStatsResourceQueryHelper.GetRankingFunc(
_configHandler.Configuration().TopPlayersMinPlayTime, clientStats.ZScore, serverId))
_config.TopPlayersMinPlayTime, clientStats.ZScore, serverId))
.CountAsync();
var serverRankingSnapshot = new EFClientRankingHistory