public async Task <ActionResult> AvailableLanguages(bool enforce = false) { var languages = _languageService.GetAllLanguages(true); var languageDic = languages.ToDictionarySafe(x => x.LanguageCulture, StringComparer.OrdinalIgnoreCase); var downloadState = _asyncState.Get <LanguageDownloadState>(); var lastImportInfos = GetLastResourcesImportInfos(); var checkResult = await CheckAvailableResources(enforce); var model = new AvailableLanguageListModel(); model.Languages = new List <AvailableLanguageModel>(); model.Version = checkResult.Version; model.ResourceCount = checkResult.ResourceCount; foreach (var resources in checkResult.Resources) { if (resources.Language.Culture.HasValue()) { languageDic.TryGetValue(resources.Language.Culture, out Language language); var alModel = new AvailableLanguageModel(); PrepareAvailableLanguageModel(alModel, resources, lastImportInfos, language, downloadState); model.Languages.Add(alModel); } } return(PartialView(model)); }
public async Task <ActionResult> AvailableLanguages(bool enforce = false) { if (!_services.Permissions.Authorize(StandardPermissionProvider.ManageLanguages)) { return(Content(T("Admin.AccessDenied.Description"))); } var languages = _languageService.GetAllLanguages(true); var languageDic = languages.ToDictionarySafe(x => x.LanguageCulture, StringComparer.OrdinalIgnoreCase); var downloadState = _asyncState.Get <LanguageDownloadState>(); var translatedPercentageAtLastImport = _genericAttributeService.GetAttributes("TranslatedPercentageAtLastImport", "Language").ToDictionarySafe(x => x.EntityId); var checkResult = await CheckAvailableResources(enforce); var model = new AvailableLanguageListModel(); model.Languages = new List <AvailableLanguageModel>(); model.Version = checkResult.Version; model.ResourceCount = checkResult.ResourceCount; foreach (var resources in checkResult.Resources) { if (resources.Language.Culture.HasValue()) { languageDic.TryGetValue(resources.Language.Culture, out Language language); var alModel = new AvailableLanguageModel(); PrepareAvailableLanguageModel(alModel, resources, translatedPercentageAtLastImport, language, downloadState); model.Languages.Add(alModel); } } return(PartialView(model)); }