diff --git a/Watcher/Program.cs b/Watcher/Program.cs index 60e3133..b41a2de 100644 --- a/Watcher/Program.cs +++ b/Watcher/Program.cs @@ -36,6 +36,7 @@ builder.Services.AddHttpContextAccessor(); // Storage Singleton builder.Services.AddSingleton(); +builder.Services.AddSingleton(); // Background Services builder.Services.AddHostedService(); diff --git a/Watcher/Services/ISystemStore.cs b/Watcher/Services/ISystemStore.cs new file mode 100644 index 0000000..1ee6d22 --- /dev/null +++ b/Watcher/Services/ISystemStore.cs @@ -0,0 +1,9 @@ +namespace Watcher.Services; + +public interface ISystemStore +{ + Boolean NewVersionAvailable { get; set; } + + Double DatabaseSize { get; set; } + +} \ No newline at end of file diff --git a/Watcher/Services/SystemMangement.cs b/Watcher/Services/SystemMangement.cs new file mode 100644 index 0000000..efd8dcc --- /dev/null +++ b/Watcher/Services/SystemMangement.cs @@ -0,0 +1,42 @@ +using System.Net.Http; + +namespace Watcher.Services; + +public class SystemManagement : BackgroundService +{ + private readonly ILogger _logger; + + private ISystemStore _SystemStore; + + public SystemManagement(ILogger logger, ISystemStore SystemStore) + { + _logger = logger; + _SystemStore = SystemStore; + + } + + protected override async Task ExecuteAsync(CancellationToken stoppingToken) + { + // Todo: Umstellen auf einmal alle 24h + var timer = new PeriodicTimer(TimeSpan.FromSeconds(30)); + + while (await timer.WaitForNextTickAsync(stoppingToken)) + { + // Hintergrundprozess abwarten + await checkForNewDockerImageVersion(); + + // 5 Sekdunden Offset + await Task.Delay(TimeSpan.FromSeconds(5), stoppingToken); + } + } + + public Task checkForNewDockerImageVersion() + { + return Task.CompletedTask; + } + + public Task createDailySqliteBackup() + { + return Task.CompletedTask; + } +} \ No newline at end of file diff --git a/Watcher/Services/SystemStore.cs b/Watcher/Services/SystemStore.cs new file mode 100644 index 0000000..34fce64 --- /dev/null +++ b/Watcher/Services/SystemStore.cs @@ -0,0 +1,9 @@ +namespace Watcher.Services; + +public class SystemStore: ISystemStore +{ + public Boolean NewVersionAvailable { get; set; } + + public Double DatabaseSize { get; set; } + +} \ No newline at end of file