public static IDictionary <string, string> GetLanguages() { var ret = new Dictionary <string, string>(); var isAdministratior = PermissionsFacade.IsAdministrator(UserSettings.Username); var userLocales = UserSettings.GetActiveLocaleCultureInfos(UserSettings.Username).ToList(); foreach (var culture in DataLocalizationFacade.ActiveLocalizationCultures) { if (isAdministratior || userLocales.Contains(culture)) { ret.Add(culture.Name, culture.DisplayName); } } return(ret); }
private void SetupFormXml() { var markupProvider = new FormDefinitionFileMarkupProvider(XmlFilePath); var formDocument = XDocument.Load(markupProvider.GetReader()); var layoutXElement = formDocument.Root?.Element(Namespaces.BindingForms10 + FormKeyTagNames.Layout); var placeHolderXElement = layoutXElement?.Element(Namespaces.BindingFormsStdUiControls10 + "PlaceHolder"); if (placeHolderXElement == null) { return; } var bindingsXElement = formDocument.Root.Element(Namespaces.BindingForms10 + FormKeyTagNames.Bindings); if (bindingsXElement == null) { return; } var resourceType = (ResourceType)Enum.Parse(typeof(ResourceType), ResourceKey.Type); if (resourceType == ResourceType.Xhtml) { placeHolderXElement.Name = Namespaces.BindingFormsStdUiControls10 + "TabPanels"; } using (var data = new DataConnection()) { var resourceValues = data.Get <IResourceValue>().Where(v => v.KeyId == ResourceKey.Id).ToDictionary(v => v.Culture); var userLocales = UserSettings.GetActiveLocaleCultureInfos(UserSettings.Username).ToList(); var isAdministratior = PermissionsFacade.IsAdministrator(UserSettings.Username); foreach (var culture in DataLocalizationFacade.ActiveLocalizationCultures) { var bindingKey = GetBindingKey(culture); var bindingValue = String.Empty; if (resourceValues.TryGetValue(culture.Name, out IResourceValue resourceValue)) { bindingValue = resourceValue.Value; } Bindings.Add(bindingKey, bindingValue); bindingsXElement.Add(CreateBindingElement(bindingKey)); if (isAdministratior || userLocales.Contains(culture)) { placeHolderXElement.Add(CreateEditResourceValueElement(culture, bindingKey, resourceType)); } else { placeHolderXElement.Add(CreateReadOnlyResourceValueElement(culture, bindingKey)); } } } DeliverFormData(ResourceKey.Key, StandardUiContainerTypes.Document, formDocument.ToString(), Bindings, BindingsValidationRules); }