From 916929c90325ce14beaf72fac55f0fa19399df78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 30 Mar 2021 16:09:23 +0300 Subject: [PATCH] Refactor MultiLingualObjectManager --- .../IMultiLingualObjectManager.cs | 8 ++--- .../MultiLingualObjectManager.cs | 32 ++++++++++--------- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualObjectManager.cs b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualObjectManager.cs index e6ddc840e5..48128648a0 100644 --- a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualObjectManager.cs +++ b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/IMultiLingualObjectManager.cs @@ -6,15 +6,15 @@ namespace Volo.Abp.MultiLingualObject { TTranslation GetTranslation( TMultiLingual multiLingual, - bool fallbackToParentCultures = true, - string culture = null) + string culture = null, + bool fallbackToParentCultures = true) where TMultiLingual : IHasMultiLingual where TTranslation : class, IMultiLingualTranslation; Task GetTranslationAsync( TMultiLingual multiLingual, - bool fallbackToParentCultures = true, - string culture = null) + string culture = null, + bool fallbackToParentCultures = true) where TMultiLingual : IHasMultiLingual where TTranslation : class, IMultiLingualTranslation; } diff --git a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs index db2b373d70..ed41778fd5 100644 --- a/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs +++ b/framework/src/Volo.Abp.MultiLingualObject/Volo/Abp/MultiLingualObject/MultiLingualObjectManager.cs @@ -23,25 +23,25 @@ namespace Volo.Abp.MultiLingualObject public TTranslation GetTranslation( TMultiLingual multiLingual, - bool fallbackToParentCultures = true, - string culture = null) + string culture = null, + bool fallbackToParentCultures = true) where TMultiLingual : IHasMultiLingual where TTranslation : class, IMultiLingualTranslation { return AsyncHelper.RunSync(() => - GetTranslationAsync(multiLingual, fallbackToParentCultures, culture)); + GetTranslationAsync(multiLingual, culture, fallbackToParentCultures)); } public virtual async Task GetTranslationAsync( TMultiLingual multiLingual, - bool fallbackToParentCultures = true, - string culture = null) + string culture = null, + bool fallbackToParentCultures = true) where TMultiLingual : IHasMultiLingual where TTranslation : class, IMultiLingualTranslation { culture ??= CultureInfo.CurrentUICulture.Name; - if (multiLingual.Translations == null || !multiLingual.Translations.Any()) + if (multiLingual.Translations.IsNullOrEmpty()) { return null; } @@ -54,9 +54,12 @@ namespace Volo.Abp.MultiLingualObject if (fallbackToParentCultures) { - translation = - GetTranslationBasedOnCulturalRecursive( - CultureInfo.CurrentUICulture.Parent, multiLingual.Translations, 0); + translation = GetTranslationBasedOnCulturalRecursive( + CultureInfo.CurrentUICulture.Parent, + multiLingual.Translations, + 0 + ); + if (translation != null) { return translation; @@ -79,17 +82,16 @@ namespace Volo.Abp.MultiLingualObject CultureInfo culture, ICollection translations, int currentDepth) where TTranslation : class, IMultiLingualTranslation { - if (culture == null || culture.Name.IsNullOrWhiteSpace() || translations.IsNullOrEmpty() || + if (culture == null || + culture.Name.IsNullOrWhiteSpace() || + translations.IsNullOrEmpty() || currentDepth > MaxCultureFallbackDepth) { return null; } - var translation = translations.FirstOrDefault(pt => - pt.Language.Equals(culture.Name, StringComparison.OrdinalIgnoreCase)); - return translation ?? - GetTranslationBasedOnCulturalRecursive(culture.Parent, - translations, currentDepth + 1); + var translation = translations.FirstOrDefault(pt => pt.Language.Equals(culture.Name, StringComparison.OrdinalIgnoreCase)); + return translation ?? GetTranslationBasedOnCulturalRecursive(culture.Parent, translations, currentDepth + 1); } } }