private LocalizationResourceApiModel PrepareViewModel() { var context = UiConfigurationContext.Current; var availableLanguagesQuery = new AvailableLanguages.Query { IncludeInvariant = context.ShowInvariantCulture }; var languages = availableLanguagesQuery.Execute(); var getResourcesQuery = new GetAllResources.Query(true); var resources = getResourcesQuery.Execute().OrderBy(r => r.ResourceKey).ToList(); var user = RequestContext.Principal; var isAdmin = false; if (user != null) { isAdmin = user.Identity.IsAuthenticated && context.AuthorizedAdminRoles.Any(r => user.IsInRole(r)); } return(new LocalizationResourceApiModel(resources, languages) { AdminMode = isAdmin, HideDeleteButton = context.HideDeleteButton, IsRemoveTranslationButtonDisabled = UiConfigurationContext.Current.DisableRemoveTranslationButton }); }
private LocalizationResourceViewModel PrepareViewModel(bool showMenu) { var availableLanguagesQuery = new AvailableLanguages.Query(); var languages = availableLanguagesQuery.Execute(); var allResources = GetAllResources(); var user = HttpContext.User; var isAdmin = user.Identity.IsAuthenticated && UiConfigurationContext.Current.AuthorizedAdminRoles.Any(r => user.IsInRole(r)); var isTreeView = Request.Cookies[_viewCcookieName]?.Value == "tree"; var result = new LocalizationResourceViewModel(allResources, languages, GetSelectedLanguages()) { ShowMenu = showMenu, AdminMode = isAdmin, IsTreeView = isTreeView }; // build tree var builder = new ResourceTreeBuilder(); var sorter = new ResourceTreeSorter(); result.Tree = sorter.Sort(builder.BuildTree(allResources)); return(result); }
private LocalizationResourceApiModel PrepareViewModel() { var availableLanguagesQuery = new AvailableLanguages.Query { IncludeInvariant = true }; var languages = availableLanguagesQuery.Execute(); var getResourcesQuery = new GetAllResources.Query(true); var resources = getResourcesQuery.Execute().OrderBy(r => r.ResourceKey).ToList(); var user = Request.HttpContext.User; var isAdmin = false; if (user != null) { isAdmin = user.Identity.IsAuthenticated && _config.AuthorizedAdminRoles.Any(r => user.IsInRole(r)); } var result = new LocalizationResourceApiModel(resources, languages, _config.MaxResourceKeyPopupTitleLength, _config.MaxResourceKeyDisplayLength) { Options = { AdminMode = isAdmin, ShowInvariantCulture = _config.ShowInvariantCulture, ShowHiddenResources = _config.ShowHiddenResources } }; return(result); }
public IEnumerable <CultureInfo> Execute(AvailableLanguages.Query query) { if (query.IncludeInvariant && !_cultureInfos.Contains(CultureInfo.InvariantCulture)) { _cultureInfos.Insert(0, CultureInfo.InvariantCulture); } return(_cultureInfos); }
public IEnumerable <CultureInfo> Execute(AvailableLanguages.Query query) { var currentLanguages = _languageBranchRepository.ListEnabled() .Where(l => l.QueryEditAccessRights(PrincipalInfo.CurrentPrincipal)) .Select(l => new CultureInfo(l.LanguageID)); if (query.IncludeInvariant) { currentLanguages = new[] { CultureInfo.InvariantCulture } }
public ViewResult ImportResources(bool?previewImport, HttpPostedFileBase importFile, bool?showMenu) { var model = new ImportResourcesViewModel { ShowMenu = showMenu ?? false }; if (importFile == null || importFile.ContentLength == 0) { return(View("ImportResources", model)); } var fileInfo = new FileInfo(importFile.FileName); var potentialParser = ConfigurationContext.Current.Import.Providers.FindByExtension(fileInfo.Extension); if (potentialParser == null) { ModelState.AddModelError("file", $"Unknown file extension - `{fileInfo.Extension}`"); return(View("ImportResources", model)); } var workflow = new ResourceImportWorkflow(); var streamReader = new StreamReader(importFile.InputStream); var fileContent = streamReader.ReadToEnd(); var allLanguages = new AvailableLanguages.Query().Execute(); try { var parseResult = potentialParser.Parse(fileContent); var differentLanguages = parseResult.DetectedLanguages.Except(allLanguages); if (differentLanguages.Any()) { ModelState.AddModelError("file", $"Importing language `{string.Join(", ", differentLanguages.Select(c => c.Name))}` is not available in current EPiServer installation"); return(View("ImportResources", model)); } if (previewImport.HasValue && previewImport.Value) { var changes = workflow.DetectChanges(parseResult.Resources, new GetAllResources.Query(true).Execute()); var changedLanguages = changes.SelectMany(c => c.ChangedLanguages).Distinct().Select(l => new CultureInfo(l)); var previewModel = new PreviewImportResourcesViewModel(changes, showMenu ?? false, changedLanguages); return(View("ImportPreview", previewModel)); } var result = workflow.Import(parseResult.Resources, previewImport ?? true); ViewData["LocalizationProvider_ImportResult"] = result; } catch (Exception e) { ModelState.AddModelError("importFailed", $"Import failed! Reason: {e.Message}"); } return(View("ImportResources", model)); }
public ViewResult ImportResources(bool?previewImport, HttpPostedFileBase importFile, bool?showMenu) { var model = new ImportResourcesViewModel { ShowMenu = showMenu ?? false }; if (importFile == null || importFile.ContentLength == 0) { return(View("ImportResources", model)); } var fileInfo = new FileInfo(importFile.FileName); if (fileInfo.Extension.ToLower() != ".json") { ModelState.AddModelError("file", "Uploaded file has different extension. Json file expected"); return(View("ImportResources", model)); } var importer = new ResourceImporter(); var serializer = new JsonDataSerializer(); var streamReader = new StreamReader(importFile.InputStream); var fileContent = streamReader.ReadToEnd(); try { var newResources = serializer.Deserialize <IEnumerable <LocalizationResource> >(fileContent); if (previewImport.HasValue && previewImport.Value) { var changes = importer.DetectChanges(newResources, new GetAllResources.Query().Execute()); var availableLanguagesQuery = new AvailableLanguages.Query(); var languages = availableLanguagesQuery.Execute(); var previewModel = new PreviewImportResourcesViewModel(changes, showMenu ?? false, languages); return(View("ImportPreview", previewModel)); } var result = importer.Import(newResources, previewImport ?? true); ViewData["LocalizationProvider_ImportResult"] = result; } catch (Exception e) { ModelState.AddModelError("importFailed", $"Import failed! Reason: {e.Message}"); } return(View("ImportResources", model)); }
private LocalizationResourceViewModel PrepareViewModel(bool showMenu) { var availableLanguagesQuery = new AvailableLanguages.Query(); var languages = availableLanguagesQuery.Execute(); var allResources = GetAllResources(); var user = HttpContext.User; var isAdmin = user.Identity.IsAuthenticated && UiConfigurationContext.Current.AuthorizedAdminRoles.Any(r => user.IsInRole(r)); return(new LocalizationResourceViewModel(allResources, languages, GetSelectedLanguages()) { ShowMenu = showMenu, AdminMode = isAdmin }); }
private (List <LocalizationResource>, IEnumerable <CultureInfo>) GetResources() { var availableLanguagesQuery = new AvailableLanguages.Query { IncludeInvariant = false }; var languages = _queryExecutor.Execute(availableLanguagesQuery); var getResourcesQuery = new GetAllResources.Query(true); var resources = _queryExecutor .Execute(getResourcesQuery) .OrderBy(_ => _.ResourceKey) .ToList(); return(resources, languages); }
/// <summary> /// Place where query handling happens /// </summary> /// <param name="query">This is the query instance</param> /// <returns> /// You have to return something from the query execution. Of course you can return <c>null</c> as well if you /// will. /// </returns> public IEnumerable <CultureInfo> Execute(AvailableLanguages.Query query) { var cacheKey = CacheKeyHelper.BuildKey($"AvailableLanguages_{query.IncludeInvariant}"); if (_configurationContext.CacheManager.Get(cacheKey) is IEnumerable <CultureInfo> cachedLanguages) { return(cachedLanguages); } var languages = GetAvailableLanguages(query.IncludeInvariant); _configurationContext.CacheManager.Insert(cacheKey, languages, false); return(languages); }
public IEnumerable <CultureInfo> Execute(AvailableLanguages.Query query) { var cacheKey = CacheKeyHelper.BuildKey($"AvailableLanguages_{query.IncludeInvariant}"); if (HttpRuntime.Cache?.Get(cacheKey) is IEnumerable <CultureInfo> cachedLanguages) { return(cachedLanguages); } var languages = GetAvailableLanguages(query.IncludeInvariant); HttpRuntime.Cache?.Insert(cacheKey, languages); return(languages); }
private LocalizationResourceApiModel PrepareViewModel() { var availableLanguagesQuery = new AvailableLanguages.Query(); var languages = availableLanguagesQuery.Execute(); var getResourcesQuery = new GetAllResources.Query(); var resources = getResourcesQuery.Execute().OrderBy(r => r.ResourceKey).ToList(); var user = RequestContext.Principal; var isAdmin = false; if (user != null) { isAdmin = user.Identity.IsAuthenticated && UiConfigurationContext.Current.AuthorizedAdminRoles.Any(r => user.IsInRole(r)); } return new LocalizationResourceApiModel(resources, languages) { AdminMode = isAdmin }; }
private (List <LocalizationResource>, IEnumerable <CultureInfo>, bool) GetResources() { var availableLanguagesQuery = new AvailableLanguages.Query { IncludeInvariant = true }; var languages = availableLanguagesQuery.Execute(); var getResourcesQuery = new GetAllResources.Query(true); var resources = getResourcesQuery.Execute().OrderBy(_ => _.ResourceKey).ToList(); var user = Request.HttpContext.User; var isAdmin = false; if (user != null) { isAdmin = user.Identity.IsAuthenticated && _config.AuthorizedAdminRoles.Any(_ => user.IsInRole(_)); } return(resources, languages, isAdmin); }
private LocalizationResourceApiModel PrepareViewModel() { var availableLanguagesQuery = new AvailableLanguages.Query(); var languages = availableLanguagesQuery.Execute(); var getResourcesQuery = new GetAllResources.Query(); var resources = getResourcesQuery.Execute().OrderBy(r => r.ResourceKey).ToList(); var user = RequestContext.Principal; var isAdmin = false; if (user != null) { isAdmin = user.Identity.IsAuthenticated && UiConfigurationContext.Current.AuthorizedAdminRoles.Any(r => user.IsInRole(r)); } return(new LocalizationResourceApiModel(resources, languages) { AdminMode = isAdmin }); }
private LocalizationResourceViewModel PrepareViewModel(bool showMenu) { var availableLanguagesQuery = new AvailableLanguages.Query { IncludeInvariant = _showInvariantCulture }; var languages = availableLanguagesQuery.Execute(); var allResources = GetAllResources(); var user = HttpContext.User; var isAdmin = user.Identity.IsAuthenticated && UiConfigurationContext.Current.AuthorizedAdminRoles.Any(r => user.IsInRole(r)); // cookies override default view from config var isTreeView = UiConfigurationContext.Current.DefaultView == ResourceListView.Tree; if (Request.Cookies[_viewCookieName] != null) { isTreeView = UiConfigurationContext.Current.IsTableViewDisabled || Request.Cookies[_viewCookieName]?.Value == "tree"; } var result = new LocalizationResourceViewModel(allResources, languages, GetSelectedLanguages(), _maxLength) { ShowMenu = showMenu, AdminMode = isAdmin, IsTreeView = isTreeView, IsTreeViewEnabled = !UiConfigurationContext.Current.IsTreeViewDisabled, IsTableViewEnabled = !UiConfigurationContext.Current.IsTableViewDisabled, IsRemoveTranslationButtonDisabled = UiConfigurationContext.Current.DisableRemoveTranslationButton, IsDeleteButtonVisible = !UiConfigurationContext.Current.HideDeleteButton }; // build tree var builder = new ResourceTreeBuilder(); var sorter = new ResourceTreeSorter(); result.Tree = sorter.Sort(builder.BuildTree(allResources, ConfigurationContext.Current.EnableLegacyMode())); return(result); }
public FileResult ExportResources(string format = "json") { var exporter = ConfigurationContext.Current.Export.Providers.FindById(format); var resources = new GetAllResources.Query(true).Execute(); var languages = new AvailableLanguages.Query().Execute(); foreach (var resource in resources) { var exportableTranslations = new List <LocalizationResourceTranslation>(); var invariantTranslation = resource.Translations.FindByLanguage(CultureInfo.InvariantCulture); if (invariantTranslation != null) { exportableTranslations.Add(invariantTranslation); } foreach (var language in languages) { var t = resource.Translations.FindByLanguage(language); if (t != null) { exportableTranslations.Add(t); } } resource.Translations = exportableTranslations; } var result = exporter.Export(resources.ToList(), Request.Params); var stream = new MemoryStream(); var writer = new StreamWriter(stream, Encoding.UTF8); writer.Write(result.SerializedData); writer.Flush(); stream.Position = 0; return(File(stream, result.FileMimeType, result.FileName)); }
public IEnumerable <CultureInfo> Execute(AvailableLanguages.Query query) { return(_languageBranchRepository.ListEnabled().Where(l => l.QueryEditAccessRights(PrincipalInfo.CurrentPrincipal)) .Select(l => new CultureInfo(l.LanguageID))); }
public IEnumerable <CultureInfo> Execute(AvailableLanguages.Query query) { return(_supportedLanguages); }
public IEnumerable <CultureInfo> Execute(AvailableLanguages.Query query) => _noLanguages;