Esempio n. 1
0
        public Task <IViewComponentResult> InvokeAsync(string cssClass)
        {
            var model = new LanguageSwitchViewModel
            {
                Languages       = _languageManager.GetActiveLanguages().ToList(),
                CurrentLanguage = _languageManager.CurrentLanguage,
                CssClass        = cssClass
            };

            return(Task.FromResult <IViewComponentResult>(View(model)));
        }
        protected virtual void BuildMultiLanguageViewModel(
            LanguageSwitchViewModel languageSwitchViewModel,
            IEnumerable <CultureInfo> supportedCultures,
            Func <CultureInfo, string> urlBuilder,
            CultureInfo currentCulture)
        {
            if (!languageSwitchViewModel.IsMultiLanguage)
            {
                return;
            }

            languageSwitchViewModel.CurrentLanguage = CreateEntry(urlBuilder, currentCulture, currentCulture);
            languageSwitchViewModel.Entries         = CreateAlternativeEntries(supportedCultures, urlBuilder, currentCulture);

            languageSwitchViewModel.IsMultiLanguage = languageSwitchViewModel.Entries.Count > 1;
        }
        public virtual LanguageSwitchViewModel GetViewModel(Func <CultureInfo, string> urlBuilder, CultureInfo currentCulture)
        {
            if (urlBuilder == null)
            {
                throw new ArgumentNullException(nameof(urlBuilder));
            }
            if (currentCulture == null)
            {
                throw new ArgumentNullException(nameof(currentCulture));
            }

            var supportedCultures = CultureService.GetAllSupportedCultures();

            var languageSwitchViewModel = new LanguageSwitchViewModel
            {
                IsMultiLanguage = supportedCultures.Length > 1
            };

            BuildMultiLanguageViewModel(languageSwitchViewModel, supportedCultures, urlBuilder, currentCulture);

            return(languageSwitchViewModel);
        }