From f35e7903600e7b0f5ed852d970dbd43eff8fc972 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 26 Aug 2022 14:31:54 +0300 Subject: [PATCH] Revise IExternalLocalizationStore usage. --- .../AbpApplicationConfigurationAppService.cs | 30 +++++++++---------- .../External/ExternalLocalizationData.cs | 18 ----------- .../ExternalLocalizationResourceData.cs | 22 -------------- .../External/IExternalLocalizationStore.cs | 4 +-- .../External/NullExternalLocalizationStore.cs | 9 +----- 5 files changed, 16 insertions(+), 67 deletions(-) delete mode 100644 framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/ExternalLocalizationData.cs delete mode 100644 framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/ExternalLocalizationResourceData.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs index b9374cf2fd..e2557aac0c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs @@ -215,10 +215,21 @@ public class AbpApplicationConfigurationAppService : ApplicationService, IAbpApp localizationConfig.Languages.AddRange(await _languageProvider.GetLanguagesAsync()); - foreach (var resource in _localizationOptions.Resources.Values) + var resourceNames = _localizationOptions.Resources.Values.Select(x => x.ResourceName); + + if (_externalLocalizationOptions.GetFromExternalStore) + { + var externalResourceNames = await LazyServiceProvider + .LazyGetRequiredService() + .GetResourceNamesAsync(); + resourceNames = resourceNames.Union(externalResourceNames); + } + + foreach (var resourceName in resourceNames) { var dictionary = new Dictionary(); - var localizer = StringLocalizerFactory.CreateByResourceNameOrNull(resource.ResourceName); + + var localizer = StringLocalizerFactory.CreateByResourceNameOrNull(resourceName); if (localizer != null) { foreach (var localizedString in localizer.GetAllStrings()) @@ -227,20 +238,7 @@ public class AbpApplicationConfigurationAppService : ApplicationService, IAbpApp } } - localizationConfig.Values[resource.ResourceName] = dictionary; - } - - if (_externalLocalizationOptions.GetFromExternalStore) - { - var distributedLocalizationData = await this - .LazyServiceProvider - .LazyGetRequiredService() - .GetAsync(); - - foreach (var resource in distributedLocalizationData.Resources) - { - localizationConfig.Values[resource.ResourceName] = resource.Texts; - } + localizationConfig.Values[resourceName] = dictionary; } localizationConfig.CurrentCulture = GetCurrentCultureInfo(); diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/ExternalLocalizationData.cs b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/ExternalLocalizationData.cs deleted file mode 100644 index 2796972c58..0000000000 --- a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/ExternalLocalizationData.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System.Collections.Generic; - -namespace Volo.Abp.Localization.External; - -public class ExternalLocalizationData -{ - public List Resources { get; } - - public ExternalLocalizationData() - { - Resources = new(); - } - - public ExternalLocalizationData(List resources) - { - Resources = Check.NotNull(resources, nameof(resources)); - } -} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/ExternalLocalizationResourceData.cs b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/ExternalLocalizationResourceData.cs deleted file mode 100644 index 320334a730..0000000000 --- a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/ExternalLocalizationResourceData.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.Collections.Generic; - -namespace Volo.Abp.Localization.External; - -public class ExternalLocalizationResourceData -{ - public string ResourceName { get; } - - public Dictionary Texts { get; } - - public ExternalLocalizationResourceData(string resourceName) - { - ResourceName = Check.NotNullOrWhiteSpace(resourceName, nameof(resourceName)); - Texts = new(); - } - - public ExternalLocalizationResourceData(string resourceName, Dictionary texts) - { - ResourceName = Check.NotNullOrWhiteSpace(resourceName, nameof(resourceName)); - Texts = Check.NotNull(texts, nameof(texts)); - } -} \ No newline at end of file diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/IExternalLocalizationStore.cs b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/IExternalLocalizationStore.cs index 9924d41d3c..d863024721 100644 --- a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/IExternalLocalizationStore.cs +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/IExternalLocalizationStore.cs @@ -10,7 +10,5 @@ public interface IExternalLocalizationStore [CanBeNull] LocalizationResourceBase GetResourceOrNull([NotNull] string resourceName); - Task GetAsync(); - - Task GetResourceNames(); + Task GetResourceNamesAsync(); } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/NullExternalLocalizationStore.cs b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/NullExternalLocalizationStore.cs index feceb8d522..bdbac6ddb9 100644 --- a/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/NullExternalLocalizationStore.cs +++ b/framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/NullExternalLocalizationStore.cs @@ -6,8 +6,6 @@ namespace Volo.Abp.Localization.External; public class NullExternalLocalizationStore : IExternalLocalizationStore, ISingletonDependency { - private readonly ExternalLocalizationData _data = new(); - public Task SaveAsync() { return Task.CompletedTask; @@ -18,12 +16,7 @@ public class NullExternalLocalizationStore : IExternalLocalizationStore, ISingle return null; } - public Task GetAsync() - { - return Task.FromResult(_data); - } - - public Task GetResourceNames() + public Task GetResourceNamesAsync() { return Task.FromResult(Array.Empty()); }