Browse Source

Merge IDistributedLocalizationStore into IExternalLocalizationStore

pull/13845/head
Halil İbrahim Kalkan 4 years ago
parent
commit
66238da304
  1. 11
      framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs
  2. 7
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpLocalizationModule.cs
  3. 18
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Distributed/DistributedLocalizationData.cs
  4. 12
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Distributed/IDistributedLocalizationStore.cs
  5. 25
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Distributed/NullDistributedLocalizationStore.cs
  6. 6
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/AbpExternalLocalizationOptions.cs
  7. 18
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/ExternalLocalizationData.cs
  8. 6
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/ExternalLocalizationResourceData.cs
  9. 8
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/IExternalLocalizationStore.cs
  10. 20
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/NullExternalLocalizationStore.cs

11
framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ApplicationConfigurations/AbpApplicationConfigurationAppService.cs

@ -18,6 +18,7 @@ using Volo.Abp.Features;
using Volo.Abp.GlobalFeatures; using Volo.Abp.GlobalFeatures;
using Volo.Abp.Localization; using Volo.Abp.Localization;
using Volo.Abp.Localization.Distributed; using Volo.Abp.Localization.Distributed;
using Volo.Abp.Localization.External;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
using Volo.Abp.Settings; using Volo.Abp.Settings;
using Volo.Abp.Timing; using Volo.Abp.Timing;
@ -43,7 +44,7 @@ public class AbpApplicationConfigurationAppService : ApplicationService, IAbpApp
private readonly ITimezoneProvider _timezoneProvider; private readonly ITimezoneProvider _timezoneProvider;
private readonly AbpClockOptions _abpClockOptions; private readonly AbpClockOptions _abpClockOptions;
private readonly ICachedObjectExtensionsDtoService _cachedObjectExtensionsDtoService; private readonly ICachedObjectExtensionsDtoService _cachedObjectExtensionsDtoService;
private readonly AbpDistributedLocalizationOptions _distributedLocalizationOptions; private readonly AbpExternalLocalizationOptions _externalLocalizationOptions;
private readonly AbpApplicationConfigurationOptions _options; private readonly AbpApplicationConfigurationOptions _options;
public AbpApplicationConfigurationAppService( public AbpApplicationConfigurationAppService(
@ -64,7 +65,7 @@ public class AbpApplicationConfigurationAppService : ApplicationService, IAbpApp
IOptions<AbpClockOptions> abpClockOptions, IOptions<AbpClockOptions> abpClockOptions,
ICachedObjectExtensionsDtoService cachedObjectExtensionsDtoService, ICachedObjectExtensionsDtoService cachedObjectExtensionsDtoService,
IOptions<AbpApplicationConfigurationOptions> options, IOptions<AbpApplicationConfigurationOptions> options,
IOptions<AbpDistributedLocalizationOptions> distributedLocalizationOptions) IOptions<AbpExternalLocalizationOptions> distributedLocalizationOptions)
{ {
_serviceProvider = serviceProvider; _serviceProvider = serviceProvider;
_abpAuthorizationPolicyProvider = abpAuthorizationPolicyProvider; _abpAuthorizationPolicyProvider = abpAuthorizationPolicyProvider;
@ -80,7 +81,7 @@ public class AbpApplicationConfigurationAppService : ApplicationService, IAbpApp
_timezoneProvider = timezoneProvider; _timezoneProvider = timezoneProvider;
_abpClockOptions = abpClockOptions.Value; _abpClockOptions = abpClockOptions.Value;
_cachedObjectExtensionsDtoService = cachedObjectExtensionsDtoService; _cachedObjectExtensionsDtoService = cachedObjectExtensionsDtoService;
_distributedLocalizationOptions = distributedLocalizationOptions.Value; _externalLocalizationOptions = distributedLocalizationOptions.Value;
_options = options.Value; _options = options.Value;
_localizationOptions = localizationOptions.Value; _localizationOptions = localizationOptions.Value;
_multiTenancyOptions = multiTenancyOptions.Value; _multiTenancyOptions = multiTenancyOptions.Value;
@ -230,11 +231,11 @@ public class AbpApplicationConfigurationAppService : ApplicationService, IAbpApp
localizationConfig.Values[resource.ResourceName] = dictionary; localizationConfig.Values[resource.ResourceName] = dictionary;
} }
if (_distributedLocalizationOptions.GetFromDistributedStore) if (_externalLocalizationOptions.GetFromExternalStore)
{ {
var distributedLocalizationData = await this var distributedLocalizationData = await this
.LazyServiceProvider .LazyServiceProvider
.LazyGetRequiredService<IDistributedLocalizationStore>() .LazyGetRequiredService<IExternalLocalizationStore>()
.GetAsync(); .GetAsync();
foreach (var resource in distributedLocalizationData.Resources) foreach (var resource in distributedLocalizationData.Resources)

7
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpLocalizationModule.cs

@ -8,6 +8,7 @@ using Microsoft.Extensions.Options;
using Polly; using Polly;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Localization.Distributed; using Volo.Abp.Localization.Distributed;
using Volo.Abp.Localization.External;
using Volo.Abp.Localization.Resources.AbpLocalization; using Volo.Abp.Localization.Resources.AbpLocalization;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.Settings; using Volo.Abp.Settings;
@ -63,10 +64,10 @@ public class AbpLocalizationModule : AbpModule
{ {
var options = context var options = context
.ServiceProvider .ServiceProvider
.GetRequiredService<IOptions<AbpDistributedLocalizationOptions>>() .GetRequiredService<IOptions<AbpExternalLocalizationOptions>>()
.Value; .Value;
if (!options.SaveToDistributedStore) if (!options.SaveToExternalStore)
{ {
return; return;
} }
@ -99,7 +100,7 @@ public class AbpLocalizationModule : AbpModule
// ReSharper disable once AccessToDisposedClosure // ReSharper disable once AccessToDisposedClosure
await scope await scope
.ServiceProvider .ServiceProvider
.GetRequiredService<IDistributedLocalizationStore>() .GetRequiredService<IExternalLocalizationStore>()
.SaveAsync(); .SaveAsync();
} }
catch (Exception ex) catch (Exception ex)

18
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Distributed/DistributedLocalizationData.cs

@ -1,18 +0,0 @@
using System.Collections.Generic;
namespace Volo.Abp.Localization.Distributed;
public class DistributedLocalizationData
{
public List<DistributedLocalizationResourceData> Resources { get; }
public DistributedLocalizationData()
{
Resources = new();
}
public DistributedLocalizationData(List<DistributedLocalizationResourceData> resources)
{
Resources = Check.NotNull(resources, nameof(resources));
}
}

12
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Distributed/IDistributedLocalizationStore.cs

@ -1,12 +0,0 @@
using System.Threading.Tasks;
namespace Volo.Abp.Localization.Distributed;
public interface IDistributedLocalizationStore
{
Task SaveAsync();
Task<DistributedLocalizationData> GetAsync();
Task<string[]> GetResourceNames();
}

25
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Distributed/NullDistributedLocalizationStore.cs

@ -1,25 +0,0 @@
using System;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Localization.Distributed;
public class NullDistributedLocalizationStore : IDistributedLocalizationStore, ISingletonDependency
{
private readonly DistributedLocalizationData _data = new();
public Task SaveAsync()
{
return Task.CompletedTask;
}
public Task<DistributedLocalizationData> GetAsync()
{
return Task.FromResult(_data);
}
public Task<string[]> GetResourceNames()
{
return Task.FromResult(Array.Empty<string>());
}
}

6
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Distributed/AbpDistributedLocalizationOptions.cs → framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/AbpExternalLocalizationOptions.cs

@ -1,14 +1,14 @@
namespace Volo.Abp.Localization.Distributed; namespace Volo.Abp.Localization.Distributed;
public class AbpDistributedLocalizationOptions public class AbpExternalLocalizationOptions
{ {
/// <summary> /// <summary>
/// Default: true. /// Default: true.
/// </summary> /// </summary>
public bool SaveToDistributedStore { get; set; } = true; public bool SaveToExternalStore { get; set; } = true;
/// <summary> /// <summary>
/// Default: false. /// Default: false.
/// </summary> /// </summary>
public bool GetFromDistributedStore { get; set; } public bool GetFromExternalStore { get; set; }
} }

18
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/ExternalLocalizationData.cs

@ -0,0 +1,18 @@
using System.Collections.Generic;
namespace Volo.Abp.Localization.Distributed;
public class ExternalLocalizationData
{
public List<ExternalLocalizationResourceData> Resources { get; }
public ExternalLocalizationData()
{
Resources = new();
}
public ExternalLocalizationData(List<ExternalLocalizationResourceData> resources)
{
Resources = Check.NotNull(resources, nameof(resources));
}
}

6
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/Distributed/DistributedLocalizationResourceData.cs → framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/ExternalLocalizationResourceData.cs

@ -2,19 +2,19 @@ using System.Collections.Generic;
namespace Volo.Abp.Localization.Distributed; namespace Volo.Abp.Localization.Distributed;
public class DistributedLocalizationResourceData public class ExternalLocalizationResourceData
{ {
public string ResourceName { get; } public string ResourceName { get; }
public Dictionary<string, string> Texts { get; } public Dictionary<string, string> Texts { get; }
public DistributedLocalizationResourceData(string resourceName) public ExternalLocalizationResourceData(string resourceName)
{ {
ResourceName = Check.NotNullOrWhiteSpace(resourceName, nameof(resourceName)); ResourceName = Check.NotNullOrWhiteSpace(resourceName, nameof(resourceName));
Texts = new(); Texts = new();
} }
public DistributedLocalizationResourceData(string resourceName, Dictionary<string, string> texts) public ExternalLocalizationResourceData(string resourceName, Dictionary<string, string> texts)
{ {
ResourceName = Check.NotNullOrWhiteSpace(resourceName, nameof(resourceName)); ResourceName = Check.NotNullOrWhiteSpace(resourceName, nameof(resourceName));
Texts = Check.NotNull(texts, nameof(texts)); Texts = Check.NotNull(texts, nameof(texts));

8
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/IExternalLocalizationStore.cs

@ -1,9 +1,17 @@
using System.Threading.Tasks;
using JetBrains.Annotations; using JetBrains.Annotations;
using Volo.Abp.Localization.Distributed;
namespace Volo.Abp.Localization.External; namespace Volo.Abp.Localization.External;
public interface IExternalLocalizationStore public interface IExternalLocalizationStore
{ {
Task SaveAsync();
[CanBeNull] [CanBeNull]
LocalizationResourceBase GetResourceOrNull([NotNull] string resourceName); LocalizationResourceBase GetResourceOrNull([NotNull] string resourceName);
Task<ExternalLocalizationData> GetAsync();
Task<string[]> GetResourceNames();
} }

20
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/External/NullExternalLocalizationStore.cs

@ -1,11 +1,31 @@
using System;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.Localization.Distributed;
namespace Volo.Abp.Localization.External; namespace Volo.Abp.Localization.External;
public class NullExternalLocalizationStore : IExternalLocalizationStore, ISingletonDependency public class NullExternalLocalizationStore : IExternalLocalizationStore, ISingletonDependency
{ {
private readonly ExternalLocalizationData _data = new();
public Task SaveAsync()
{
return Task.CompletedTask;
}
public LocalizationResourceBase GetResourceOrNull(string resourceName) public LocalizationResourceBase GetResourceOrNull(string resourceName)
{ {
return null; return null;
} }
public Task<ExternalLocalizationData> GetAsync()
{
return Task.FromResult(_data);
}
public Task<string[]> GetResourceNames()
{
return Task.FromResult(Array.Empty<string>());
}
} }
Loading…
Cancel
Save