public async Task DoWorkAsync(CancellationToken cancellationToken) { var(_, enablePurgeSetting) = await _settingsService.GetSettingAsync("EnablePurge", cancellationToken); var(_, purgeAgeMinutesSetting) = await _settingsService.GetSettingAsync("PurgeAgeMinutes", cancellationToken); if (!bool.TryParse(enablePurgeSetting, out var enablePurge) || !int.TryParse(purgeAgeMinutesSetting, out var purgeAgeMinutes) || !enablePurge) { _logger.LogInformation("Data purge is disabled, skipping."); return; } var purgeCutoff = DateTime.UtcNow - TimeSpan.FromMinutes(purgeAgeMinutes); _logger.LogInformation($"Purging snapshot and alert data before {purgeCutoff:MM/dd/yy H:mm}"); var snapshotPurgedCount = await _snapshotService.DeleteOldAsync(purgeCutoff, cancellationToken); _logger.LogInformation($"Purged {snapshotPurgedCount} snapshot(s)."); var alertPurgedCount = await _alertService.DeleteOldAsync(purgeCutoff, cancellationToken); _logger.LogInformation($"Purged {alertPurgedCount} alert(s)."); }