Handle the case where currentLanguage is null.

pull/4823/head
maliming 5 years ago
parent c9710a2679
commit dbe69735c9

@ -1,7 +1,9 @@
using System.Globalization;
using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.RequestLocalization;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Localization;
namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Themes.Basic.Components.Toolbar.LanguageSwitch
@ -23,12 +25,32 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Themes.Basic.Components.Toolbar
CultureInfo.CurrentUICulture.Name
);
if (currentLanguage == null)
{
var abpRequestLocalizationOptionsProvider = HttpContext.RequestServices.GetRequiredService<IAbpRequestLocalizationOptionsProvider>();
var localizationOptions = await abpRequestLocalizationOptionsProvider.GetLocalizationOptionsAsync();
if (localizationOptions.DefaultRequestCulture != null)
{
currentLanguage = new LanguageInfo(
localizationOptions.DefaultRequestCulture.Culture.Name,
localizationOptions.DefaultRequestCulture.UICulture.Name,
localizationOptions.DefaultRequestCulture.UICulture.DisplayName);
}
else
{
currentLanguage = new LanguageInfo(
CultureInfo.CurrentCulture.Name,
CultureInfo.CurrentUICulture.Name,
CultureInfo.CurrentUICulture.DisplayName);
}
}
var model = new LanguageSwitchViewComponentModel
{
CurrentLanguage = currentLanguage,
OtherLanguages = languages.Where(l => l != currentLanguage).ToList()
};
return View("~/Themes/Basic/Components/Toolbar/LanguageSwitch/Default.cshtml", model);
}
}

Loading…
Cancel
Save