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());
}
}
}