44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using ModVersionChecker.model;
|
|
using ModVersionChecker.managers.interfaces;
|
|
using ModVersionChecker.service.interfaces;
|
|
|
|
|
|
namespace ModVersionChecker
|
|
{
|
|
public class VersionChecker
|
|
{
|
|
private readonly IAppService _appService;
|
|
private readonly IConfigRepository _configManager;
|
|
private readonly IVersionService _versionService;
|
|
|
|
public event EventHandler<string>? OnFinished;
|
|
|
|
public VersionChecker(
|
|
IAppService appService,
|
|
IVersionService versionService,
|
|
IConfigRepository configManager
|
|
)
|
|
{
|
|
_configManager = configManager ?? throw new ArgumentNullException(nameof(configManager));
|
|
_versionService = versionService ?? throw new ArgumentNullException(nameof(versionService));
|
|
_appService = appService ?? throw new ArgumentNullException(nameof(appService));
|
|
}
|
|
|
|
public void StartVersionChecking()
|
|
{
|
|
var config = _configManager.Load() ?? new Config();
|
|
new Thread(() =>
|
|
{
|
|
while (true)
|
|
{
|
|
_appService.CheckAllApps();
|
|
|
|
Thread.Sleep(config.IntervalMinutes * 60 * 1000);
|
|
}
|
|
|
|
})
|
|
{ IsBackground = true }.Start();
|
|
}
|
|
}
|
|
}
|