Browse Source

IAbpStringLocalizer.GetSupportedCultures method converted to async

pull/13845/head
Halil İbrahim Kalkan 4 years ago
parent
commit
ae8ba0758c
  1. 5
      framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteLocalizationContributor.cs
  2. 9
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpDictionaryBasedStringLocalizer.cs
  3. 5
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpStringLocalizerExtensions.cs
  4. 3
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/IAbpStringLocalizer.cs
  5. 3
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/ILocalizationResourceContributor.cs
  6. 5
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LocalizationResourceBase.cs
  7. 12
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LocalizationResourceContributorList.cs
  8. 5
      framework/src/Volo.Abp.Localization/Volo/Abp/Localization/VirtualFiles/VirtualFileLocalizationResourceContributorBase.cs
  9. 5
      framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/AbpLocalization_Tests.cs

5
framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo/Abp/AspNetCore/Mvc/Client/RemoteLocalizationContributor.cs

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Logging;
@ -55,11 +56,11 @@ public class RemoteLocalizationContributor : ILocalizationResourceContributor
}
}
public IEnumerable<string> GetSupportedCultures()
public Task<IEnumerable<string>> GetSupportedCulturesAsync()
{
/* This contributor does not know all the supported cultures by the
remote localization resource, and it is not needed on the client side */
return Array.Empty<string>();
return Task.FromResult((IEnumerable<string>)Array.Empty<string>());
}
private Dictionary<string, string> GetResourceOrNull()

9
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpDictionaryBasedStringLocalizer.cs

@ -4,6 +4,7 @@ using System.Collections.Immutable;
using System.Globalization;
using System.Linq;
using System.Resources;
using System.Threading.Tasks;
using Microsoft.Extensions.Localization;
namespace Volo.Abp.Localization;
@ -51,9 +52,9 @@ public class AbpDictionaryBasedStringLocalizer : IAbpStringLocalizer
);
}
public IEnumerable<string> GetSupportedCultures()
public Task<IEnumerable<string>> GetSupportedCulturesAsync()
{
return Resource.Contributors.GetSupportedCultures();
return Resource.Contributors.GetSupportedCulturesAsync();
}
protected virtual LocalizedString GetLocalizedStringFormatted(string name, params object[] arguments)
@ -224,9 +225,9 @@ public class AbpDictionaryBasedStringLocalizer : IAbpStringLocalizer
return _innerLocalizer.GetAllStrings(_cultureName, includeParentCultures, includeBaseLocalizers, includeDynamicContributors);
}
public IEnumerable<string> GetSupportedCultures()
public Task<IEnumerable<string>> GetSupportedCulturesAsync()
{
return _innerLocalizer.GetSupportedCultures();
return _innerLocalizer.GetSupportedCulturesAsync();
}
}
}

5
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/AbpStringLocalizerExtensions.cs

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Threading.Tasks;
using JetBrains.Annotations;
using Microsoft.Extensions.Localization;
using Volo.Abp.DynamicProxy;
@ -58,12 +59,12 @@ public static class AbpStringLocalizerExtensions
);
}
public static IEnumerable<string> GetSupportedCultures(this IStringLocalizer localizer)
public static async Task<IEnumerable<string>> GetSupportedCulturesAsync(this IStringLocalizer localizer)
{
var internalLocalizer = ((IStringLocalizer)ProxyHelper.UnProxy(localizer)).GetInternalLocalizer();
if (internalLocalizer is IAbpStringLocalizer abpStringLocalizer)
{
return abpStringLocalizer.GetSupportedCultures();
return await abpStringLocalizer.GetSupportedCulturesAsync();
}
return Array.Empty<string>();

3
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/IAbpStringLocalizer.cs

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.Extensions.Localization;
namespace Volo.Abp.Localization;
@ -11,5 +12,5 @@ public interface IAbpStringLocalizer : IStringLocalizer
bool includeDynamicContributors
);
IEnumerable<string> GetSupportedCultures();
Task<IEnumerable<string>> GetSupportedCulturesAsync();
}

3
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/ILocalizationResourceContributor.cs

@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.Extensions.Localization;
namespace Volo.Abp.Localization;
@ -13,5 +14,5 @@ public interface ILocalizationResourceContributor
void Fill(string cultureName, Dictionary<string, LocalizedString> dictionary);
IEnumerable<string> GetSupportedCultures();
Task<IEnumerable<string>> GetSupportedCulturesAsync();
}

5
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LocalizationResourceBase.cs

@ -32,9 +32,4 @@ public abstract class LocalizationResourceBase
Contributors.Add(initialContributor);
}
}
internal IEnumerable<string> GetSupportedCultures()
{
return Contributors.GetSupportedCultures();
}
}

12
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/LocalizationResourceContributorList.cs

@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.Localization;
namespace Volo.Abp.Localization;
@ -44,8 +45,15 @@ public class LocalizationResourceContributorList : List<ILocalizationResourceCon
}
}
internal IEnumerable<string> GetSupportedCultures()
internal async Task<IEnumerable<string>> GetSupportedCulturesAsync()
{
return this.SelectMany(c => c.GetSupportedCultures()).Distinct();
var cultures = new List<string>();
foreach (var contributor in this)
{
cultures.AddRange(await contributor.GetSupportedCulturesAsync());
}
return cultures;
}
}

5
framework/src/Volo.Abp.Localization/Volo/Abp/Localization/VirtualFiles/VirtualFileLocalizationResourceContributorBase.cs

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Localization;
@ -39,9 +40,9 @@ public abstract class VirtualFileLocalizationResourceContributorBase : ILocaliza
GetDictionaries().GetOrDefault(cultureName)?.Fill(dictionary);
}
public IEnumerable<string> GetSupportedCultures()
public Task<IEnumerable<string>> GetSupportedCulturesAsync()
{
return GetDictionaries().Keys;
return Task.FromResult((IEnumerable<string>)GetDictionaries().Keys);
}
private Dictionary<string, ILocalizationDictionary> GetDictionaries()

5
framework/test/Volo.Abp.Localization.Tests/Volo/Abp/Localization/AbpLocalization_Tests.cs

@ -1,5 +1,6 @@
using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.Localization;
using Shouldly;
using Volo.Abp.Localization.TestResources.Source;
@ -361,9 +362,9 @@ public class AbpLocalization_Tests : AbpIntegratedTest<AbpLocalizationTestModule
}
[Fact]
public void Should_Get_Supported_Cultures()
public async Task Should_Get_Supported_Cultures()
{
var cultures = _localizer.GetSupportedCultures();
var cultures = await _localizer.GetSupportedCulturesAsync();
cultures.Count().ShouldBeGreaterThan(0);
}
}
Loading…
Cancel
Save