namespace SWP.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; } }