namespace PlanTempus.Core.Configurations.SmartConfigProvider
{
///
/// Configuration options for setting up smart configuration providers.
/// Provides fluent configuration methods for specifying the repository type and settings.
///
public class SmartConfigOptions
{
private IConfigurationRepository _repository;
internal string _configKey;
///
/// Configures the smart configuration to use PostgreSQL as the configuration store.
///
/// The configuration key used to find the connection string
/// The configuration options instance for method chaining
public SmartConfigOptions UsePostgres(string configKey)
{
_configKey = configKey;
_repository = new Repositories.PostgresConfigurationRepository();
return this;
}
///
/// Configures the smart configuration to use SQL Server as the configuration store.
///
/// The configuration options instance for method chaining
/// This feature is not yet implemented
public SmartConfigOptions UseSqlServer()
{
throw new NotImplementedException();
}
///
/// Configures the smart configuration to use a custom configuration repository.
///
/// The configuration repository to use
/// The configuration options instance for method chaining
public SmartConfigOptions UseRepository(IConfigurationRepository repository)
{
_repository = repository;
return this;
}
internal IConfigurationRepository GetRepository() => _repository;
}
}