mirror of
https://github.com/knightcrawler-stremio/knightcrawler.git
synced 2024-12-20 03:29:51 +00:00
We can use this collection as an alternative source to lookup imdb ids, which would be executed before name_to_imdb is called in the consumer.
44 lines
1.4 KiB
C#
44 lines
1.4 KiB
C#
namespace Metadata.Extensions;
|
|
|
|
public static class ConfigurationExtensions
|
|
{
|
|
private const string ConfigurationFolder = "Configuration";
|
|
private const string LoggingConfig = "logging.json";
|
|
|
|
public static IConfigurationBuilder AddServiceConfiguration(this IConfigurationBuilder configuration)
|
|
{
|
|
configuration.SetBasePath(Path.Combine(AppContext.BaseDirectory, ConfigurationFolder));
|
|
|
|
configuration.AddJsonFile(LoggingConfig, false, true);
|
|
|
|
configuration.AddEnvironmentVariables();
|
|
|
|
configuration.AddUserSecrets<Program>();
|
|
|
|
return configuration;
|
|
}
|
|
|
|
public static TConfiguration LoadConfigurationFromConfig<TConfiguration>(this IServiceCollection services, IConfiguration configuration, string sectionName)
|
|
where TConfiguration : class
|
|
{
|
|
var instance = configuration.GetSection(sectionName).Get<TConfiguration>();
|
|
|
|
ArgumentNullException.ThrowIfNull(instance, nameof(instance));
|
|
|
|
services.TryAddSingleton(instance);
|
|
|
|
return instance;
|
|
}
|
|
|
|
public static TConfiguration LoadConfigurationFromEnv<TConfiguration>(this IServiceCollection services)
|
|
where TConfiguration : class
|
|
{
|
|
var instance = Activator.CreateInstance<TConfiguration>();
|
|
|
|
ArgumentNullException.ThrowIfNull(instance, nameof(instance));
|
|
|
|
services.TryAddSingleton(instance);
|
|
|
|
return instance;
|
|
}
|
|
} |