using Core.Dto.Settings;
using Core.Interfaces;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace Generator.DataSource;
///
/// Provides some methods to load json objects from a json data source
///
public class JsonLoader : IDataSourceLoader
{
private readonly IServiceCollection _services;
private readonly IConfiguration _configuration;
public JsonLoader(IServiceCollection services, IConfiguration configuration)
{
_services = services;
_configuration = configuration;
}
///
/// Load data that can be found in appsettings.json
///
public void LoadAppsettings()
{
_services.AddOptions().Bind(_configuration.GetSection("Environment"));
_services.AddOptions().Bind(_configuration.GetSection("DefaultArguments"));
_services.AddOptions().Bind(_configuration.GetSection("General"));
_services.AddOptions().Bind(_configuration.GetSection("Publish"));
_services.AddOptions().Bind(_configuration.GetSection("Credentials"));
_services.AddOptions().Bind(_configuration.GetSection("DockerImages"));
_services.AddOptions().Bind(_configuration.GetSection("Java"));
_services.AddOptions().Bind(_configuration.GetSection("Dotnet"));
_services.AddOptions().Bind(_configuration.GetSection("Javascript"));
_services.AddOptions().Bind(_configuration.GetSection("OpenApi"));
_services.AddOptions().Bind(_configuration.GetSection("Templates"));
}
}