protected virtual List <PreferredLanguageViewModel> GetPreferredLanguageViewModel(CultureInfo currentCulture, string customerLanguage)
        {
            var         allcultures         = CultureService.GetAllSupportedCultures();
            CultureInfo customerCultureInfo = null;

            var languages = (from culture in allcultures
                             let displayName = LocalizationProvider.GetLocalizedString(new GetLocalizedParam
            {
                CultureInfo = currentCulture,
                Category = "General",
                Key = culture.DisplayName
            })
                                               select new PreferredLanguageViewModel
            {
                DisplayName = displayName,
                IsoCode = culture.Name,
                IsSelected = customerLanguage == culture.Name
            }).ToList();

            if (!languages.Any(item => item.IsSelected))
            {
                try
                {
                    customerCultureInfo = CultureInfo.GetCultureInfo(customerLanguage);
                }
                catch (Exception ex)
                {
                    var errorMessage = string.Format("Culture not found: {0}", customerLanguage);
                    Log.ErrorException(errorMessage, ex);
                }

                if (customerCultureInfo != null)
                {
                    var affinityCultureName = CultureService.GetAffinityCulture(customerCultureInfo)?.Name;
                    if (string.IsNullOrEmpty(affinityCultureName))
                    {
                        return(languages);
                    }

                    var affinityLanguage = languages.FirstOrDefault(item => affinityCultureName == item.IsoCode);

                    if (affinityLanguage != null)
                    {
                        affinityLanguage.IsSelected = true;
                    }
                }
            }
            return(languages);
        }
        protected virtual List <PreferredLanguageViewModel> GetPreferredLanguageViewModel(CultureInfo currentCulture, string customerLanguage)
        {
            var allcultures = CultureService.GetAllSupportedCultures();

            return((from culture in allcultures
                    let displayName = LocalizationProvider.GetLocalizedString(new GetLocalizedParam
            {
                CultureInfo = currentCulture,
                Category = "General",
                Key = culture.DisplayName
            })
                                      select new PreferredLanguageViewModel
            {
                DisplayName = displayName,
                IsoCode = culture.Name,
                IsSelected = customerLanguage == culture.Name
            }).ToList());
        }