using System.IO; using Umbraco.Core.Cache; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.Grid; using Umbraco.Core.Configuration.HealthChecks; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Dashboards; using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Manifest; namespace Umbraco.Core { /// /// Provides extension methods for the class. /// public static class ConfigsExtensions { public static IGlobalSettings Global(this Configs configs) => configs.GetConfig(); public static IUmbracoSettingsSection Settings(this Configs configs) => configs.GetConfig(); public static IHealthChecks HealthChecks(this Configs configs) => configs.GetConfig(); public static IGridConfig Grids(this Configs configs) => configs.GetConfig(); internal static CoreDebug CoreDebug(this Configs configs) => configs.GetConfig(); public static void AddCoreConfigs(this Configs configs) { var configDir = new DirectoryInfo(IOHelper.MapPath(SystemDirectories.Config)); configs.Add(() => new GlobalSettings()); configs.Add("umbracoConfiguration/settings"); configs.Add("umbracoConfiguration/HealthChecks"); configs.Add(() => new CoreDebug()); // GridConfig depends on runtime caches, manifest parsers... and cannot be available during composition configs.Add(factory => new GridConfig( factory.GetInstance(), factory.GetInstance(), configDir, factory.GetInstance(), factory.GetInstance().Debug)); configs.Add(() => new ContentDashboardSettings()); } } }