Browse Source

Double check _requestLocalizationOptions

pull/5048/head
Halil İbrahim Kalkan 6 years ago
parent
commit
1b352cef4d
  1. 51
      framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/DefaultAbpRequestLocalizationOptionsProvider.cs

51
framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/RequestLocalization/DefaultAbpRequestLocalizationOptionsProvider.cs

@ -50,35 +50,38 @@ namespace Microsoft.AspNetCore.RequestLocalization
{ {
using (await _syncSemaphore.LockAsync()) using (await _syncSemaphore.LockAsync())
{ {
using (var serviceScope = _serviceProviderFactory.CreateScope()) if (_requestLocalizationOptions == null)
{ {
var languageProvider = serviceScope.ServiceProvider.GetRequiredService<ILanguageProvider>(); using (var serviceScope = _serviceProviderFactory.CreateScope())
var settingProvider = serviceScope.ServiceProvider.GetRequiredService<ISettingProvider>(); {
var languageProvider = serviceScope.ServiceProvider.GetRequiredService<ILanguageProvider>();
var settingProvider = serviceScope.ServiceProvider.GetRequiredService<ISettingProvider>();
var languages = await languageProvider.GetLanguagesAsync(); var languages = await languageProvider.GetLanguagesAsync();
var defaultLanguage = await settingProvider.GetOrNullAsync(LocalizationSettingNames.DefaultLanguage); var defaultLanguage = await settingProvider.GetOrNullAsync(LocalizationSettingNames.DefaultLanguage);
var options = !languages.Any() var options = !languages.Any()
? new RequestLocalizationOptions() ? new RequestLocalizationOptions()
: new RequestLocalizationOptions : new RequestLocalizationOptions
{ {
DefaultRequestCulture = DefaultGetRequestCulture(defaultLanguage, languages), DefaultRequestCulture = DefaultGetRequestCulture(defaultLanguage, languages),
SupportedCultures = languages SupportedCultures = languages
.Select(l => l.CultureName) .Select(l => l.CultureName)
.Distinct() .Distinct()
.Select(c => new CultureInfo(c)) .Select(c => new CultureInfo(c))
.ToArray(), .ToArray(),
SupportedUICultures = languages SupportedUICultures = languages
.Select(l => l.UiCultureName) .Select(l => l.UiCultureName)
.Distinct() .Distinct()
.Select(c => new CultureInfo(c)) .Select(c => new CultureInfo(c))
.ToArray() .ToArray()
}; };
_optionsAction?.Invoke(options); _optionsAction?.Invoke(options);
_requestLocalizationOptions = options; _requestLocalizationOptions = options;
}
} }
} }
} }
@ -98,4 +101,4 @@ namespace Microsoft.AspNetCore.RequestLocalization
return new RequestCulture(cultureName, uiCultureName); return new RequestCulture(cultureName, uiCultureName);
} }
} }
} }

Loading…
Cancel
Save