|
|
|
@ -43,7 +43,6 @@ public class AbpApplicationConfigurationAppService : ApplicationService, IAbpApp
|
|
|
|
|
private readonly ITimezoneProvider _timezoneProvider;
|
|
|
|
|
private readonly AbpClockOptions _abpClockOptions;
|
|
|
|
|
private readonly ICachedObjectExtensionsDtoService _cachedObjectExtensionsDtoService;
|
|
|
|
|
private readonly AbpExternalLocalizationOptions _externalLocalizationOptions;
|
|
|
|
|
private readonly AbpApplicationConfigurationOptions _options;
|
|
|
|
|
|
|
|
|
|
public AbpApplicationConfigurationAppService(
|
|
|
|
@ -63,8 +62,7 @@ public class AbpApplicationConfigurationAppService : ApplicationService, IAbpApp
|
|
|
|
|
ITimezoneProvider timezoneProvider,
|
|
|
|
|
IOptions<AbpClockOptions> abpClockOptions,
|
|
|
|
|
ICachedObjectExtensionsDtoService cachedObjectExtensionsDtoService,
|
|
|
|
|
IOptions<AbpApplicationConfigurationOptions> options,
|
|
|
|
|
IOptions<AbpExternalLocalizationOptions> distributedLocalizationOptions)
|
|
|
|
|
IOptions<AbpApplicationConfigurationOptions> options)
|
|
|
|
|
{
|
|
|
|
|
_serviceProvider = serviceProvider;
|
|
|
|
|
_abpAuthorizationPolicyProvider = abpAuthorizationPolicyProvider;
|
|
|
|
@ -80,13 +78,12 @@ public class AbpApplicationConfigurationAppService : ApplicationService, IAbpApp
|
|
|
|
|
_timezoneProvider = timezoneProvider;
|
|
|
|
|
_abpClockOptions = abpClockOptions.Value;
|
|
|
|
|
_cachedObjectExtensionsDtoService = cachedObjectExtensionsDtoService;
|
|
|
|
|
_externalLocalizationOptions = distributedLocalizationOptions.Value;
|
|
|
|
|
_options = options.Value;
|
|
|
|
|
_localizationOptions = localizationOptions.Value;
|
|
|
|
|
_multiTenancyOptions = multiTenancyOptions.Value;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public virtual async Task<ApplicationConfigurationDto> GetAsync()
|
|
|
|
|
public virtual async Task<ApplicationConfigurationDto> GetAsync(ApplicationConfigurationRequestOptions options)
|
|
|
|
|
{
|
|
|
|
|
//TODO: Optimize & cache..?
|
|
|
|
|
|
|
|
|
@ -97,7 +94,7 @@ public class AbpApplicationConfigurationAppService : ApplicationService, IAbpApp
|
|
|
|
|
Auth = await GetAuthConfigAsync(),
|
|
|
|
|
Features = await GetFeaturesConfigAsync(),
|
|
|
|
|
GlobalFeatures = await GetGlobalFeaturesConfigAsync(),
|
|
|
|
|
Localization = await GetLocalizationConfigAsync(),
|
|
|
|
|
Localization = await GetLocalizationConfigAsync(options),
|
|
|
|
|
CurrentUser = GetCurrentUser(),
|
|
|
|
|
Setting = await GetSettingConfigAsync(),
|
|
|
|
|
MultiTenancy = GetMultiTenancy(),
|
|
|
|
@ -209,36 +206,42 @@ public class AbpApplicationConfigurationAppService : ApplicationService, IAbpApp
|
|
|
|
|
return authConfig;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual async Task<ApplicationLocalizationConfigurationDto> GetLocalizationConfigAsync()
|
|
|
|
|
protected virtual async Task<ApplicationLocalizationConfigurationDto> GetLocalizationConfigAsync(
|
|
|
|
|
ApplicationConfigurationRequestOptions options)
|
|
|
|
|
{
|
|
|
|
|
var localizationConfig = new ApplicationLocalizationConfigurationDto();
|
|
|
|
|
|
|
|
|
|
localizationConfig.Languages.AddRange(await _languageProvider.GetLanguagesAsync());
|
|
|
|
|
|
|
|
|
|
var externalResourceNames = await LazyServiceProvider
|
|
|
|
|
.LazyGetRequiredService<IExternalLocalizationStore>()
|
|
|
|
|
.GetResourceNamesAsync();
|
|
|
|
|
|
|
|
|
|
var resourceNames = _localizationOptions
|
|
|
|
|
.Resources
|
|
|
|
|
.Values
|
|
|
|
|
.Select(x => x.ResourceName)
|
|
|
|
|
.Union(externalResourceNames);
|
|
|
|
|
|
|
|
|
|
foreach (var resourceName in resourceNames)
|
|
|
|
|
if (options.IncludeLocalizationResources)
|
|
|
|
|
{
|
|
|
|
|
var dictionary = new Dictionary<string, string>();
|
|
|
|
|
|
|
|
|
|
var localizer = await StringLocalizerFactory.CreateByResourceNameOrNullAsync(resourceName);
|
|
|
|
|
if (localizer != null)
|
|
|
|
|
var resourceNames = _localizationOptions
|
|
|
|
|
.Resources
|
|
|
|
|
.Values
|
|
|
|
|
.Select(x => x.ResourceName)
|
|
|
|
|
.Union(
|
|
|
|
|
await LazyServiceProvider
|
|
|
|
|
.LazyGetRequiredService<IExternalLocalizationStore>()
|
|
|
|
|
.GetResourceNamesAsync()
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
foreach (var resourceName in resourceNames)
|
|
|
|
|
{
|
|
|
|
|
foreach (var localizedString in await localizer.GetAllStringsAsync())
|
|
|
|
|
var dictionary = new Dictionary<string, string>();
|
|
|
|
|
|
|
|
|
|
var localizer = await StringLocalizerFactory
|
|
|
|
|
.CreateByResourceNameOrNullAsync(resourceName);
|
|
|
|
|
|
|
|
|
|
if (localizer != null)
|
|
|
|
|
{
|
|
|
|
|
dictionary[localizedString.Name] = localizedString.Value;
|
|
|
|
|
foreach (var localizedString in await localizer.GetAllStringsAsync())
|
|
|
|
|
{
|
|
|
|
|
dictionary[localizedString.Name] = localizedString.Value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
localizationConfig.Values[resourceName] = dictionary;
|
|
|
|
|
localizationConfig.Values[resourceName] = dictionary;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
localizationConfig.CurrentCulture = GetCurrentCultureInfo();
|
|
|
|
|