using System.Configuration; using Umbraco.Configuration; using Umbraco.Configuration.Implementations; using Umbraco.Core.Configuration.HealthChecks; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.IO; using Umbraco.Core.Logging; namespace Umbraco.Core.Configuration { public class ConfigsFactory : IConfigsFactory { public IHostingSettings HostingSettings { get; } = new HostingSettings(); public ICoreDebug CoreDebug { get; } = new CoreDebug(); public IMachineKeyConfig MachineKeyConfig { get; } = new MachineKeyConfig(); public IIndexCreatorSettings IndexCreatorSettings { get; } = new IndexCreatorSettings(); public INuCacheSettings NuCacheSettings { get; } = new NuCacheSettings(); public ITypeFinderSettings TypeFinderSettings { get; } = new TypeFinderSettings(); public IRuntimeSettings RuntimeSettings { get; } = new RuntimeSettings(); public IActiveDirectorySettings ActiveDirectorySettings { get; } = new ActiveDirectorySettings(); public IExceptionFilterSettings ExceptionFilterSettings { get; } = new ExceptionFilterSettings(); public ITourSettings TourSettings { get; } = new TourSettings(); public ILoggingSettings LoggingSettings { get; } = new LoggingSettings(); public IKeepAliveSettings KeepAliveSettings { get; } = new KeepAliveSettings(); public IWebRoutingSettings WebRoutingSettings { get; } = new WebRoutingSettings(); public IRequestHandlerSettings RequestHandlerSettings { get; } = new RequestHandlerSettings(); public ISecuritySettings SecuritySettings { get; } = new SecuritySettings(); public IUserPasswordConfiguration UserPasswordConfigurationSettings { get; } = new UserPasswordConfigurationSettings(); public IMemberPasswordConfiguration MemberPasswordConfigurationSettings { get; } = new MemberPasswordConfigurationSettings(); public IContentSettings ContentSettings { get; } = new ContentSettings(); public IGlobalSettings GlobalSettings { get; } = new GlobalSettings(); public Configs Create(IIOHelper ioHelper, ILogger logger) { var configs = new Configs(section => ConfigurationManager.GetSection(section)); configs.Add(() => GlobalSettings); configs.Add(() => HostingSettings); configs.Add("umbracoConfiguration/HealthChecks"); configs.Add(() => CoreDebug); configs.Add(() => MachineKeyConfig); configs.Add(() => new ConnectionStrings(ioHelper, logger)); configs.Add(() => new ModelsBuilderConfig(ioHelper)); configs.Add(() => IndexCreatorSettings); configs.Add(() => NuCacheSettings); configs.Add(() => TypeFinderSettings); configs.Add(() => RuntimeSettings); configs.Add(() => ActiveDirectorySettings); configs.Add(() => ExceptionFilterSettings); configs.Add(() => TourSettings); configs.Add(() => LoggingSettings); configs.Add(() => KeepAliveSettings); configs.Add(() => WebRoutingSettings); configs.Add(() => RequestHandlerSettings); configs.Add(() => SecuritySettings); configs.Add(() => UserPasswordConfigurationSettings); configs.Add(() => MemberPasswordConfigurationSettings); configs.Add(() => ContentSettings); configs.AddCoreConfigs(); return configs; } } }