using Microsoft.Extensions.Logging; using Moonlight.Api.Infrastructure.Hooks; namespace Moonlight.Api.Admin.Sys.Diagnose; public class DiagnoseService { private readonly ILogger Logger; private readonly IEnumerable Providers; public DiagnoseService(IEnumerable providers, ILogger logger) { Providers = providers; Logger = logger; } public async Task DiagnoseAsync() { var results = new List(); foreach (var provider in Providers) try { results.AddRange( await provider.DiagnoseAsync() ); } catch (Exception e) { Logger.LogError(e, "An unhandled error occured while processing provider"); } return results.ToArray(); } }