using System.IO; using MalwareMultiScan.Api.Data.Configuration; using Microsoft.Extensions.Configuration; using YamlDotNet.Serialization; using YamlDotNet.Serialization.NamingConventions; namespace MalwareMultiScan.Api.Services { public class BackendConfigurationReader { public BackendConfigurationReader(IConfiguration configuration) { var configurationPath = configuration.GetValue("BackendsConfiguration"); if (!File.Exists(configurationPath)) throw new FileNotFoundException("Missing BackendsConfiguration YAML file", configurationPath); var configurationContent = File.ReadAllText(configurationPath); var deserializer = new DeserializerBuilder() .WithNamingConvention(CamelCaseNamingConvention.Instance) .Build(); Backends = deserializer.Deserialize(configurationContent); } public BackendConfiguration[] Backends { get; } } }