(WIP) migrated TourSettings to use IOptions pattern for configuration.

This commit is contained in:
Andy Butland
2020-08-19 14:14:01 +01:00
parent 0a2ebcd1f1
commit a3e84ea3a8
4 changed files with 12 additions and 23 deletions

View File

@@ -21,7 +21,7 @@ namespace Umbraco.Configuration
{
var configs = new Configs();
configs.Add<ITourSettings>(() => new TourSettings(_configuration));
//configs.Add<ITourSettings>(() => new TourSettings(_configuration));
configs.Add<ICoreDebugSettings>(() => new CoreDebugSettings(_configuration));
configs.Add<IRequestHandlerSettings>(() => new RequestHandlerSettings(_configuration));
configs.Add<ISecuritySettings>(() => new SecuritySettings(_configuration));

View File

@@ -1,21 +1,7 @@
using Microsoft.Extensions.Configuration;
using Umbraco.Core;
using Umbraco.Core.Configuration.UmbracoSettings;
namespace Umbraco.Configuration.Models
namespace Umbraco.Configuration.Models
{
internal class TourSettings : ITourSettings
public class TourSettings
{
private const string Prefix = Constants.Configuration.ConfigPrefix + "Tours:";
private readonly IConfiguration _configuration;
public TourSettings(IConfiguration configuration)
{
_configuration = configuration;
}
public string Type { get; set; }
public bool EnableTours => _configuration.GetValue(Prefix+"EnableTours", true);
public bool EnableTours { get; set; } = true;
}
}

View File

@@ -2,7 +2,9 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Microsoft.Extensions.Options;
using Newtonsoft.Json;
using Umbraco.Configuration.Models;
using Umbraco.Core;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Hosting;
@@ -19,21 +21,21 @@ namespace Umbraco.Web.BackOffice.Controllers
{
private readonly TourFilterCollection _filters;
private readonly IHostingEnvironment _hostingEnvironment;
private readonly ITourSettings _tourSettings;
private readonly TourSettings _tourSettings;
private readonly IWebSecurity _webSecurity;
private readonly IContentTypeService _contentTypeService;
public TourController(
TourFilterCollection filters,
IHostingEnvironment hostingEnvironment,
ITourSettings tourSettings,
IOptionsSnapshot<TourSettings> tourSettings,
IWebSecurity webSecurity,
IContentTypeService contentTypeService)
{
_filters = filters;
_hostingEnvironment = hostingEnvironment;
_tourSettings = tourSettings;
_tourSettings = tourSettings.Value;
_webSecurity = webSecurity;
_contentTypeService = contentTypeService;
}

View File

@@ -16,6 +16,7 @@ using Serilog;
using Serilog.Extensions.Hosting;
using Serilog.Extensions.Logging;
using Umbraco.Configuration;
using Umbraco.Configuration.Models;
using Umbraco.Core;
using Umbraco.Core.Cache;
using Umbraco.Core.Composing;
@@ -105,10 +106,10 @@ namespace Umbraco.Extensions
{
if (configuration == null) throw new ArgumentNullException(nameof(configuration));
services.Configure<TourSettings>(configuration.GetSection(Constants.Configuration.ConfigPrefix + "Tours"));
var configsFactory = new AspNetCoreConfigsFactory(configuration);
var configs = configsFactory.Create();
services.AddSingleton(configs);
return services;