using System.Text.Json; using System.Text.Json.Serialization; namespace Alma.Services; public class ConfigurationFileReader { private readonly List _configurationFileReaders; public ConfigurationFileReader(IEnumerable configurationFileReaders) { _configurationFileReaders = configurationFileReaders.ToList(); } public async Task<(T? Result, string? FileName)> DeserializeAsync( string fileNameWithoutExtension, Func contextGenerator, string? extension = null) where T : class { foreach (var configurationFileReader in _configurationFileReaders) { if (await configurationFileReader.DeserializeAsync(fileNameWithoutExtension, contextGenerator, extension) is { Result: { } } result) return result; } return (null, null); } }