Updated classes to use IOptionsMonitor or IOptionsSnapshot instead of IOptions

This commit is contained in:
Nikolaj Geisle
2021-09-27 09:58:44 +02:00
parent 8ce66277ce
commit e11d6ac280
15 changed files with 57 additions and 45 deletions

View File

@@ -11,18 +11,22 @@ namespace Umbraco.Cms.Web.Common.Localization
/// </summary>
public class UmbracoRequestLocalizationOptions : IConfigureOptions<RequestLocalizationOptions>
{
private readonly IOptions<GlobalSettings> _globalSettings;
private GlobalSettings _globalSettings;
/// <summary>
/// Initializes a new instance of the <see cref="UmbracoRequestLocalizationOptions"/> class.
/// </summary>
public UmbracoRequestLocalizationOptions(IOptions<GlobalSettings> globalSettings) => _globalSettings = globalSettings;
public UmbracoRequestLocalizationOptions(IOptionsMonitor<GlobalSettings> globalSettings)
{
_globalSettings = globalSettings.CurrentValue;
globalSettings.OnChange(x => _globalSettings = x);
}
/// <inheritdoc/>
public void Configure(RequestLocalizationOptions options)
{
// set the default culture to what is in config
options.DefaultRequestCulture = new RequestCulture(_globalSettings.Value.DefaultUILanguage);
options.DefaultRequestCulture = new RequestCulture(_globalSettings.DefaultUILanguage);
// add a custom provider
if (options.RequestCultureProviders == null)