using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Options; using Umbraco.Cms.Core.Configuration.Models; using Umbraco.Extensions; namespace Umbraco.Cms.Core.Configuration; /// /// Configures ConnectionStrings. /// public class ConfigureConnectionStrings : IConfigureNamedOptions { private readonly IConfiguration _configuration; /// /// Initializes a new instance of the class. /// public ConfigureConnectionStrings(IConfiguration configuration) => _configuration = configuration; /// public void Configure(ConnectionStrings options) => Configure(Constants.System.UmbracoConnectionName, options); /// public void Configure(string name, ConnectionStrings options) { if (name == Options.DefaultName) { name = Constants.System.UmbracoConnectionName; } if (options.IsConnectionStringConfigured()) { return; } options.Name = name; options.ConnectionString = _configuration.GetConnectionString(name); options.ProviderName = _configuration.GetConnectionString($"{name}{ConnectionStrings.ProviderNamePostfix}") ?? ConnectionStrings.DefaultProviderName; } }