using Microsoft.Extensions.Logging; using Moonlight.Api.Interfaces; using Moonlight.Api.Models; namespace Moonlight.Api.Services; public class DiagnoseService { private readonly IEnumerable Providers; private readonly ILogger Logger; 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(); } }