using Microsoft.Extensions.Options; using octo_fiesta.Models.Settings; namespace octo_fiesta.Services.Validation; /// /// Orchestrates startup validation for all configured services. /// This replaces the old StartupValidationService with a more extensible architecture. /// public class StartupValidationOrchestrator : IHostedService { private readonly IEnumerable _validators; private readonly IOptions _subsonicSettings; public StartupValidationOrchestrator( IEnumerable validators, IOptions subsonicSettings) { _validators = validators; _subsonicSettings = subsonicSettings; } public async Task StartAsync(CancellationToken cancellationToken) { Console.WriteLine(); Console.WriteLine("========================================"); Console.WriteLine(" octo-fiesta starting up... "); Console.WriteLine("========================================"); Console.WriteLine(); // Run all validators foreach (var validator in _validators) { try { await validator.ValidateAsync(cancellationToken); } catch (Exception ex) { Console.WriteLine($"Error validating {validator.ServiceName}: {ex.Message}"); } } Console.WriteLine(); Console.WriteLine("========================================"); Console.WriteLine(" Startup validation complete "); Console.WriteLine("========================================"); Console.WriteLine(); } public Task StopAsync(CancellationToken cancellationToken) { return Task.CompletedTask; } }