first commit

This commit is contained in:
2026-03-02 20:53:28 +01:00
commit d27c205106
63 changed files with 4593 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
using HanaToolbox.Config;
using HanaToolbox.Logging;
using HanaToolbox.Scheduling;
using HanaToolbox.Services.Interfaces;
namespace HanaToolbox.Services;
/// <summary>
/// Simple factory for wiring service dependencies without a DI container.
/// AOT-safe — no reflection, no generic activators.
/// </summary>
public static class ServiceFactory
{
public static ProcessRunner CreateRunner(AppLogger log) => new(log);
public static SuUserSwitcher CreateSwitcher(AppLogger log) => new(CreateRunner(log));
public static HdbClientLocator CreateLocator(AppLogger log) => new(CreateRunner(log));
public static NtfyNotificationService CreateNtfy(AppLogger log, NtfyConfig ntfy) =>
new(ntfy, log);
public static FileMonitorStateService CreateState(AppLogger log) => new(log);
public static BackupService CreateBackupService(AppLogger log)
{
var config = ConfigService.Load();
var runner = CreateRunner(log);
var switcher = new SuUserSwitcher(runner);
var locator = new HdbClientLocator(runner);
var ntfy = CreateNtfy(log, config.Ntfy);
return new BackupService(switcher, locator, ntfy, log);
}
public static AuroraService CreateAuroraService(AppLogger log)
{
var config = ConfigService.Load();
var runner = CreateRunner(log);
var switcher = new SuUserSwitcher(runner);
var locator = new HdbClientLocator(runner);
var ntfy = CreateNtfy(log, config.Ntfy);
return new AuroraService(switcher, locator, ntfy, log);
}
public static MonitorService CreateMonitorService(AppLogger log)
{
var config = ConfigService.Load();
var runner = CreateRunner(log);
var switcher = new SuUserSwitcher(runner);
var locator = new HdbClientLocator(runner);
var ntfy = CreateNtfy(log, config.Ntfy);
var state = CreateState(log);
return new MonitorService(runner, switcher, locator, ntfy, state, log);
}
public static CronOrchestrator CreateCronOrchestrator(AppLogger log)
{
var config = ConfigService.Load();
var runner = CreateRunner(log);
var switcher = new SuUserSwitcher(runner);
var locator = new HdbClientLocator(runner);
var ntfy = CreateNtfy(log, config.Ntfy);
var state = CreateState(log);
return new CronOrchestrator(
monitor: new MonitorService(runner, switcher, locator, ntfy, state, log),
backup: new BackupService(switcher, locator, ntfy, log),
cleaner: new CleanerService(log),
aurora: new AuroraService(switcher, locator, ntfy, log),
firewall: new FirewallService(runner, log),
stateService: state,
logger: log);
}
}