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