private void LoadCurrent() { CSBooster_DataContext csb = new CSBooster_DataContext(Helper.GetSiemeConnectionString()); XElement xmlLanguageNode = null; litCurrLang.Text = ci.NativeName; var navStructureRecord = csb.hisp_Navigation_GetNavigationStructureXML(navId).SingleOrDefault(); var navLanguageRecord = csb.hisp_Navigation_GetNavigationLanguageXML(navId, CultureHandler.GetCurrentNeutralLanguageCode()).SingleOrDefault(); XElement xmlStruct = XElement.Parse(navStructureRecord.NST_XMLStruct); XElement xmlStructNode = (from xmlStructNodes in xmlStruct.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue) select xmlStructNodes).SingleOrDefault(); if (navLanguageRecord != null) { XElement xmlLanguage = XElement.Parse(navLanguageRecord.NAV_XMLNames); xmlLanguageNode = (from xmlLanguageNodes in xmlLanguage.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue) select xmlLanguageNodes).SingleOrDefault(); } if (xmlLanguageNode != null) { litText.Text = xmlLanguageNode.Attribute("Text") != null?xmlLanguageNode.Attribute("Text").Value : string.Empty; litTooltip.Text = xmlLanguageNode.Attribute("Tooltip") != null?xmlLanguageNode.Attribute("Tooltip").Value : string.Empty; if (xmlStructNode.Attribute("PredefinedUrl") == null || string.IsNullOrEmpty(xmlStructNode.Attribute("PredefinedUrl").Value)) { litLink.Text = xmlLanguageNode.Attribute("NavigateUrl") != null?xmlLanguageNode.Attribute("NavigateUrl").Value : string.Empty; } else { litLink.Text = " Vordefiniert "; } } }
private void AddNavNode(string nodeText, string nodeValue, string parentNodeValue) { Guid currentNavId = new Guid(hidCurrNavID.Value); CSBooster_DataContext csb = new CSBooster_DataContext(Helper.GetSiemeConnectionString()); hidParentNodeId.Value = parentNodeValue; //Savte the Current Node in the struct XML var navStructureRecord = csb.hisp_Navigation_GetNavigationStructureXML(currentNavId).SingleOrDefault(); if (navStructureRecord != null) { XElement xmlStruct = XElement.Parse(navStructureRecord.NST_XMLStruct); var parentNode = (from theNodes in xmlStruct.Descendants("Node").Where(x => x.Attribute("Value").Value == parentNodeValue) select theNodes).SingleOrDefault(); if (parentNode != null) { parentNode.Add(new XElement("Node", new XAttribute("Text", nodeText), new XAttribute("Value", nodeValue))); } else { //The Parent Node is the Root... add it to the Tree xmlStruct.Add(new XElement("Node", new XAttribute("Text", nodeText), new XAttribute("Value", nodeValue))); } csb.hisp_Navigation_SaveNavigationStructure(currentNavId, null, xmlStruct.ToString()); lbtnG.Text = language.GetString("TooltipNotSynchronized"); lbtnG.CssClass = "icon navnotsynchro"; var navLanguageRecord = csb.hisp_Navigation_GetNavigationLanguageXML(currentNavId, CultureHandler.GetCurrentNeutralLanguageCode()).SingleOrDefault(); if (navLanguageRecord != null) { XElement xmlLanguage = XElement.Parse(navLanguageRecord.NAV_XMLNames); var langNode = (from theLangNodes in xmlLanguage.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue) select theLangNodes).SingleOrDefault(); if (langNode == null) { xmlLanguage.Add(new XElement(new XElement("Node", new XAttribute("Text", nodeText), new XAttribute("Value", nodeValue)))); } else { //Should never happen... langNode.Attribute("Text").Value = nodeText; } csb.hisp_Navigation_SaveNavigationLanguage(currentNavId, CultureHandler.GetCurrentNeutralLanguageCode(), xmlLanguage.ToString(), string.Empty); } else { csb.hisp_Navigation_SaveNavigationLanguage(currentNavId, CultureHandler.GetCurrentNeutralLanguageCode(), "<Tree/>", string.Empty); } } }
private void RemoveNavNode(string nodeValue) { Guid currentNavId = new Guid(hidCurrNavID.Value); CSBooster_DataContext csb = new CSBooster_DataContext(Helper.GetSiemeConnectionString()); var navStructureRecord = csb.hisp_Navigation_GetNavigationStructureXML(currentNavId).SingleOrDefault(); if (navStructureRecord != null) { XElement xmlStruct = XElement.Parse(navStructureRecord.NST_XMLStruct); var nodeToRemove = (from theNodes in xmlStruct.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue) select theNodes).SingleOrDefault(); if (nodeToRemove != null) { nodeToRemove.Remove(); } csb.hisp_Navigation_SaveNavigationStructure(currentNavId, null, xmlStruct.ToString()); lbtnG.Text = language.GetString("TooltipNotSynchronized"); lbtnG.CssClass = "icon navnotsynchro"; foreach (string langKey in SiteConfig.NeutralLanguages.Keys) { var navLanguageRecord = csb.hisp_Navigation_GetNavigationLanguageXML(currentNavId, langKey).SingleOrDefault(); if (navLanguageRecord != null) { XElement xmlLanguage = XElement.Parse(navLanguageRecord.NAV_XMLNames); var langNodeToRemove = (from theLangNodes in xmlLanguage.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue) select theLangNodes).SingleOrDefault(); if (langNodeToRemove != null) { langNodeToRemove.Remove(); } csb.hisp_Navigation_SaveNavigationLanguage(currentNavId, langKey, xmlLanguage.ToString(), string.Empty); } } } }
public static void GeneratePreCacheNavigation(Guid navId, string langKey, string role) { XElement xRolNavi = XElement.Parse("<Tree/>"); XElement xRolStruct = XElement.Parse("<Tree/>"); try { var NavStructureRecord = csb.hisp_Navigation_GetNavigationStructureXML(navId).SingleOrDefault(); XElement xmlStruct = XElement.Parse(NavStructureRecord.NST_XMLStruct); var NavLanguageRecord = csb.hisp_Navigation_GetNavigationLanguageXML(navId, langKey).SingleOrDefault(); if (NavLanguageRecord != null) { XElement xmlLanguage = XElement.Parse(NavLanguageRecord.NAV_XMLNames); //Get only Struct Nodes that are for the CurrentRole foreach (var xnode in xmlStruct.Elements("Node")) { XElement xnewChild = GetRoleNodes(xnode, role); if (xnewChild != null) { xRolStruct.Add(xnewChild); } } foreach (var xnode in xRolStruct.Elements("Node")) { XElement xnewChild = MergeWithLangData(xnode, xmlLanguage); if (xnewChild != null) { xRolNavi.Add(xnewChild); } } } csb.hisp_Navigation_SavePreChache(navId, langKey, role, xRolNavi.ToString()); } catch { } }
protected void lbtnSaveNode_Click(object sender, EventArgs e) { Guid currentNavId = new Guid(hidCurrNavID.Value); string nodeValue = Request.Form[hidCurrentNodeValue.UniqueID]; CSBooster_DataContext csb = new CSBooster_DataContext(Helper.GetSiemeConnectionString()); XElement xmlLanguageNode; var navStructureRecord = csb.hisp_Navigation_GetNavigationStructureXML(currentNavId).SingleOrDefault(); var navLanguageRecord = csb.hisp_Navigation_GetNavigationLanguageXML(currentNavId, CultureHandler.GetCurrentNeutralLanguageCode()).SingleOrDefault(); if (navStructureRecord != null) { XElement xmlStruct = XElement.Parse(navStructureRecord.NST_XMLStruct); XElement xmlLanguage; XElement xmlStructNode = (from xmlStructNodes in xmlStruct.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue) select xmlStructNodes).SingleOrDefault(); if (navLanguageRecord != null) { xmlLanguage = XElement.Parse(navLanguageRecord.NAV_XMLNames); xmlLanguageNode = (from xmlLanguageNodes in xmlLanguage.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue) select xmlLanguageNodes).SingleOrDefault(); if (xmlLanguageNode == null) { xmlLanguageNode = XElement.Parse(string.Format(@"<Node Text='' Value='{0}'/>", nodeValue)); xmlLanguage.Add(xmlLanguageNode); } } else { xmlLanguage = XElement.Parse(string.Format(@"<Tree><Node Text='' Value='{0}'/></Tree>", nodeValue)); xmlLanguageNode = xmlLanguage.Nodes().OfType <XElement>().FirstOrDefault(); } if (rcRoles.Items.Count == 0) { LoadRolesCombobox(xmlStructNode); } if (rcLinks.Items.Count == 1) { LoadPredefinedUrls(); } xmlStructNode.SetAttributeValue("Text", Request.Form[txtText.UniqueID]); xmlStructNode.SetAttributeValue("Tooltip", Request.Form[txtTextTool.UniqueID]); xmlStructNode.SetAttributeValue("Value", nodeValue); xmlStructNode.SetAttributeValue("RolesVisibility", GetRoleVisibility()); //Attention RadCombobox Returns the text and not the Value of the selected Combo xmlStructNode.SetAttributeValue("Target", rcTarget.FindItemByText(Request.Form[rcTarget.UniqueID]).Value); xmlLanguageNode.SetAttributeValue("Text", Request.Form[txtText.UniqueID]); xmlLanguageNode.SetAttributeValue("Tooltip", Request.Form[txtTextTool.UniqueID]); xmlLanguageNode.SetAttributeValue("Value", nodeValue); string rcLinksSelectedVal = GetRadComboboxValue(rcLinks); if (rcLinksSelectedVal == "URL") { string url = Request.Form[txtUrl.UniqueID]; xmlLanguageNode.SetAttributeValue("NavigateUrl", url); xmlStructNode.SetAttributeValue("ObjectUrl", string.Empty); xmlStructNode.SetAttributeValue("PredefinedUrl", string.Empty); } else if (rcLinksSelectedVal.StartsWith("OT_")) { string url = Request.Form[txtUrl.UniqueID]; xmlLanguageNode.SetAttributeValue("NavigateUrl", url); xmlStructNode.SetAttributeValue("ObjectUrl", rcLinksSelectedVal.Substring(3)); xmlStructNode.SetAttributeValue("PredefinedUrl", string.Empty); } else { var xPredefinedNavies = Constants.Links[rcLinksSelectedVal]; if (xPredefinedNavies != null) { string url = xPredefinedNavies.Url; xmlLanguageNode.SetAttributeValue("NavigateUrl", url); string localizationBaseFileName = "Navigation"; if (!string.IsNullOrEmpty(xPredefinedNavies.LocalizationBaseFileName)) { localizationBaseFileName = xPredefinedNavies.LocalizationBaseFileName; } xmlLanguageNode.SetAttributeValue("Text", GuiLanguage.GetGuiLanguage(localizationBaseFileName).GetString(xPredefinedNavies.UrlTextKey) ?? Request.Form[txtText.UniqueID]); } else { xmlLanguageNode.SetAttributeValue("NavigateUrl", null); } xmlStructNode.SetAttributeValue("PredefinedUrl", rcLinksSelectedVal); xmlStructNode.SetAttributeValue("ObjectUrl", string.Empty); } csb.hisp_Navigation_SaveNavigationStructure(currentNavId, null, xmlStruct.ToString()); lbtnG.Text = language.GetString("TooltipNotSynchronized"); lbtnG.CssClass = "icon navnotsynchro"; csb.hisp_Navigation_SaveNavigationLanguage(currentNavId, CultureHandler.GetCurrentNeutralLanguageCode(), xmlLanguage.ToString(), string.Empty); rtv1.SelectedNode.Text = xmlLanguageNode.Attribute("Text").Value; ShowNodeEdit(Request.Form[hidCurrentNodeValue.UniqueID], true); } }
private void PerformDragAndDrop(RadTreeViewDropPosition dropPosition, RadTreeNode sourceNode, RadTreeNode destNode) { if (sourceNode.Equals(destNode) || sourceNode.IsAncestorOf(destNode)) { return; } sourceNode.Owner.Nodes.Remove(sourceNode); Guid currentNavId = new Guid(hidCurrNavID.Value); CSBooster_DataContext csb = new CSBooster_DataContext(Helper.GetSiemeConnectionString()); var navStructureRecord = csb.hisp_Navigation_GetNavigationStructureXML(currentNavId).SingleOrDefault(); XElement xMoveNode = null; XElement structDestNode = null; XElement xmlStruct = null; if (navStructureRecord != null) { xmlStruct = XElement.Parse(navStructureRecord.NST_XMLStruct); var nodeToRemove = (from theNodes in xmlStruct.Descendants("Node").Where(x => x.Attribute("Value").Value == sourceNode.Value) select theNodes).SingleOrDefault(); structDestNode = (from theNodes in xmlStruct.Descendants("Node").Where(x => x.Attribute("Value").Value == destNode.Value) select theNodes).SingleOrDefault(); if (nodeToRemove != null) { xMoveNode = XElement.Parse(nodeToRemove.ToString()); nodeToRemove.Remove(); } } if (xMoveNode != null) { switch (dropPosition) { case RadTreeViewDropPosition.Over: // child if (!sourceNode.IsAncestorOf(destNode)) { destNode.Nodes.Add(sourceNode); if (structDestNode != null) { structDestNode.Add(xMoveNode); } else { //droped to the root xmlStruct.Add(xMoveNode); } } break; case RadTreeViewDropPosition.Above: // sibling - above destNode.InsertBefore(sourceNode); structDestNode.AddBeforeSelf(xMoveNode); break; case RadTreeViewDropPosition.Below: // sibling - below destNode.InsertAfter(sourceNode); structDestNode.AddAfterSelf(xMoveNode); break; } sourceNode.ExpandParentNodes(); csb.hisp_Navigation_SaveNavigationStructure(currentNavId, null, xmlStruct.ToString()); lbtnG.Text = language.GetString("TooltipNotSynchronized"); lbtnG.CssClass = "icon navnotsynchro"; } }
private void ShowNodeEdit(string nodeValue, bool updateValues) { pnlNavNodeProp.Visible = true; pnlNaviNameEdit.Visible = false; Guid currentNavId = new Guid(hidCurrNavID.Value); CSBooster_DataContext csb = new CSBooster_DataContext(Helper.GetSiemeConnectionString()); XElement xmlStructNode = null; XElement xmlLanguageNode = null; var navStructureRecord = csb.hisp_Navigation_GetNavigationStructureXML(currentNavId).SingleOrDefault(); var navLanguageRecord = csb.hisp_Navigation_GetNavigationLanguageXML(currentNavId, CultureHandler.GetCurrentNeutralLanguageCode()).SingleOrDefault(); if (navStructureRecord != null) { XElement xmlStruct = XElement.Parse(navStructureRecord.NST_XMLStruct); xmlStructNode = (from xmlStructNodes in xmlStruct.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue) select xmlStructNodes).SingleOrDefault(); if (navLanguageRecord != null) { XElement xmlLanguage = XElement.Parse(navLanguageRecord.NAV_XMLNames); xmlLanguageNode = (from xmlLanguageNodes in xmlLanguage.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue) select xmlLanguageNodes).SingleOrDefault() ?? XElement.Parse(string.Format(@"<Node Text='' Value='{0}'/>", nodeValue)); } else { xmlLanguageNode = XElement.Parse(string.Format(@"<Node Text='' Value='{0}'/>", nodeValue)); } } LoadRolesCombobox(xmlStructNode); txtText.Text = xmlLanguageNode.Attribute("Text") != null?xmlLanguageNode.Attribute("Text").Value : string.Empty; txtTextTool.Text = xmlLanguageNode.Attribute("Tooltip") != null?xmlLanguageNode.Attribute("Tooltip").Value : string.Empty; string target = xmlStructNode.Attribute("Target") != null?xmlStructNode.Attribute("Target").Value : "_self"; rcTarget.SelectedIndex = rcTarget.Items.FindItemIndexByValue(target); LoadPredefinedUrls(); if (updateValues) { if ((xmlStructNode.Attribute("PredefinedUrl") == null || xmlStructNode.Attribute("PredefinedUrl").Value == "") && (xmlStructNode.Attribute("ObjectUrl") == null || string.IsNullOrEmpty(xmlStructNode.Attribute("ObjectUrl").Value))) { //Neither Predeifined nor link to an object rcLinks.SelectedIndex = 0; if (xmlLanguageNode.Attribute("NavigateUrl") != null && !string.IsNullOrEmpty(xmlLanguageNode.Attribute("NavigateUrl").Value)) { txtUrl.Text = xmlLanguageNode.Attribute("NavigateUrl").Value; } else { txtUrl.Text = string.Empty; } txtUrl.Visible = true; pnlLinkPicker.Controls.Clear(); } else if (xmlStructNode.Attribute("ObjectUrl") != null && !string.IsNullOrEmpty(xmlStructNode.Attribute("ObjectUrl").Value)) { //link to an object rcLinks.SelectedIndex = rcLinks.Items.FindItemIndexByValue("OT_" + xmlStructNode.Attribute("ObjectUrl").Value); if (xmlLanguageNode.Attribute("NavigateUrl") != null && !string.IsNullOrEmpty(xmlLanguageNode.Attribute("NavigateUrl").Value)) { txtUrl.Text = xmlLanguageNode.Attribute("NavigateUrl").Value; } else { txtUrl.Text = string.Empty; } txtUrl.Visible = true; RcLinkSingleObjectType(xmlStructNode.Attribute("ObjectUrl").Value); } else { pnlLinkPicker.Controls.Clear(); //Predeifined try { try { txtUrl.Attributes.Remove("style"); } catch { } txtUrl.Attributes.Add("style", "display:none;visibility:hidden;"); txtUrl.Text = string.Empty; } catch { rcLinks.SelectedIndex = 0; txtUrl.Text = string.Empty; txtUrl.Visible = true; } } } lbtnT.NavigateUrl = string.Format("javascript:radWinOpen('/Pages/Popups/NavigationTranslate.aspx?NAV={0}&NID={1}&Target={2}', 'Navigation', 550, 400, true)", currentNavId, nodeValue, "NodeTrans"); lbtnT.Visible = SiteConfig.NeutralLanguages.Count > 1; }
private void LoadNaviTree(Guid?navTreeId) { //Load The structure of the Navigation CSBooster_DataContext csb = new CSBooster_DataContext(Helper.GetSiemeConnectionString()); XDocument xNavigation = new XDocument(); if (navTreeId.HasValue) { hidCurrNavID.Value = navTreeId.ToString(); var navStructureRecord = csb.hisp_Navigation_GetNavigationStructureXML(navTreeId).SingleOrDefault(); var navLanguageRecord = csb.hisp_Navigation_GetNavigationLanguageXML(navTreeId, CultureHandler.GetCurrentNeutralLanguageCode()).SingleOrDefault(); if (navStructureRecord != null) { XElement xmlStruct = XElement.Parse(navStructureRecord.NST_XMLStruct); XElement xmlLanguage = navLanguageRecord != null?XElement.Parse(navLanguageRecord.NAV_XMLNames) : XElement.Parse(@"<Tree/>"); xNavigation = new XDocument(); XElement xRoot = new XElement("Tree"); XElement xCurrentParrent = new XElement("Node", new XAttribute("Text", csb.hisp_Navigation_GetNavigationKeyName(navTreeId).SingleOrDefault().NST_KeyName), new XAttribute("Value", navTreeId.ToString())); foreach (var xnode in xmlStruct.Elements("Node")) { XElement xnewChild = DataAccess.Business.Navigation.ReplaceData(xnode, xmlLanguage, true); if (xnewChild != null) { xCurrentParrent.Add(xnewChild); } } xRoot.Add(xCurrentParrent); xNavigation.Add(xRoot); if (navStructureRecord.NST_IsDirty) { lbtnG.Text = language.GetString("TooltipNotSynchronized"); lbtnG.CssClass = "icon navnotsynchro"; } else { lbtnG.Text = language.GetString("TooltipSynchronized"); lbtnG.CssClass = "icon navsynchro"; } } } else { navTreeId = Guid.NewGuid(); hidCurrNavID.Value = navTreeId.ToString(); xNavigation = XDocument.Parse(string.Format(@"<Tree><Node Text=""Neue Navigation"" Value=""{0}""/></Tree>", hidCurrNavID.Value)); //Create a New Navigation XDocument xStruct = new XDocument( new XElement("Tree")); XDocument xLang = new XDocument( new XElement("Tree")); csb.hisp_Navigation_SaveNavigationStructure(navTreeId, "Neue Navigation", xStruct.ToString()); lbtnG.Text = language.GetString("TooltipNotSynchronized"); lbtnG.CssClass = "icon navnotsynchro"; csb.hisp_Navigation_SaveNavigationLanguage(navTreeId, CultureHandler.GetCurrentNeutralLanguageCode(), xLang.ToString(), string.Empty); lbtnG.Text = language.GetString("TooltipSynchronized"); lbtnG.CssClass = "icon navnotsynchro"; } rtv1.LoadXmlString(xNavigation.ToString()); rtv1.Nodes[0].EnableContextMenu = true; rtv1.Nodes[0].ContextMenuID = rtvCMRoot.ID; }
private void LoadTranslation() { CSBooster_DataContext csb = new CSBooster_DataContext(Helper.GetSiemeConnectionString()); XElement xmlLanguageNode = null; var navStructureRecord = csb.hisp_Navigation_GetNavigationStructureXML(navId).SingleOrDefault(); var navLanguageRecord = csb.hisp_Navigation_GetNavigationLanguageXML(navId, translationNeutralLanguage).SingleOrDefault(); XElement xmlStruct = XElement.Parse(navStructureRecord.NST_XMLStruct); XElement xmlStructNode = (from xmlStructNodes in xmlStruct.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue) select xmlStructNodes).SingleOrDefault(); if (navLanguageRecord != null) { XElement xmlLanguage = XElement.Parse(navLanguageRecord.NAV_XMLNames); xmlLanguageNode = (from xmlLanguageNodes in xmlLanguage.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue) select xmlLanguageNodes).SingleOrDefault(); } if (xmlLanguageNode != null) { txtText.Text = xmlLanguageNode.Attribute("Text") != null?xmlLanguageNode.Attribute("Text").Value : string.Empty; txtTooltip.Text = xmlLanguageNode.Attribute("Tooltip") != null?xmlLanguageNode.Attribute("Tooltip").Value : string.Empty; if ((xmlStructNode.Attribute("PredefinedUrl") == null || xmlStructNode.Attribute("PredefinedUrl").Value == "") && (xmlStructNode.Attribute("ObjectUrl") == null || string.IsNullOrEmpty(xmlStructNode.Attribute("ObjectUrl").Value))) { //Neither Predeifined nor link to an object txtLink.Text = xmlLanguageNode.Attribute("NavigateUrl") != null?xmlLanguageNode.Attribute("NavigateUrl").Value : string.Empty; txtLink.Enabled = true; } else if (xmlStructNode.Attribute("ObjectUrl") != null && !string.IsNullOrEmpty(xmlStructNode.Attribute("ObjectUrl").Value)) { //link to an object txtLink.Text = xmlLanguageNode.Attribute("NavigateUrl") != null?xmlLanguageNode.Attribute("NavigateUrl").Value : string.Empty; txtLink.Enabled = true; } else { txtLink.Text = " Vordefiniert "; txtLink.Enabled = false; var xPredefinedNavi = Constants.Links[xmlStructNode.Attribute("PredefinedUrl").Value]; string localizationBaseFileName = "Navigation"; if (!string.IsNullOrEmpty(xPredefinedNavi.LocalizationBaseFileName)) { localizationBaseFileName = xPredefinedNavi.LocalizationBaseFileName; } txtText.Text = GuiLanguage.GetGuiLanguage(localizationBaseFileName, translationNeutralLanguage).GetString(xPredefinedNavi.UrlTextKey) ?? string.Empty; } } else { txtText.Text = string.Empty; txtTooltip.Text = string.Empty; if (xmlStructNode.Attribute("PredefinedUrl") == null || string.IsNullOrEmpty(xmlStructNode.Attribute("PredefinedUrl").Value)) { txtLink.Text = string.Empty; txtLink.Enabled = true; } else { txtLink.Text = " Vordefiniert "; txtLink.Enabled = false; var xPredefinedNavi = Constants.Links[xmlStructNode.Attribute("PredefinedUrl").Value]; string localizationBaseFileName = "Navigation"; if (!string.IsNullOrEmpty(xPredefinedNavi.LocalizationBaseFileName)) { localizationBaseFileName = xPredefinedNavi.LocalizationBaseFileName; } txtText.Text = GuiLanguage.GetGuiLanguage(localizationBaseFileName, translationNeutralLanguage).GetString(xPredefinedNavi.UrlTextKey) ?? string.Empty; } } }
private void SaveTranslation() { CSBooster_DataContext csb = new CSBooster_DataContext(Helper.GetSiemeConnectionString()); XElement xmlLanguageNode; var navStructureRecord = csb.hisp_Navigation_GetNavigationStructureXML(navId).SingleOrDefault(); var navLanguageRecord = csb.hisp_Navigation_GetNavigationLanguageXML(navId, translationNeutralLanguage).SingleOrDefault(); XElement xmlStruct = XElement.Parse(navStructureRecord.NST_XMLStruct); XElement xmlStructNode = (from xmlStructNodes in xmlStruct.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue) select xmlStructNodes).SingleOrDefault(); XElement xmlLanguage; if (navLanguageRecord != null) { xmlLanguage = XElement.Parse(navLanguageRecord.NAV_XMLNames); xmlLanguageNode = (from xmlLanguageNodes in xmlLanguage.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue) select xmlLanguageNodes).SingleOrDefault(); if (xmlLanguageNode == null) { xmlLanguageNode = XElement.Parse(string.Format(@"<Node Text='' Value='{0}'/>", nodeValue)); xmlLanguage.Add(xmlLanguageNode); } } else { xmlLanguage = XElement.Parse(string.Format(@"<Tree><Node Text='' Value='{0}'/></Tree>", nodeValue)); xmlLanguageNode = xmlLanguage.Nodes().OfType <XElement>().FirstOrDefault(); } xmlLanguageNode.SetAttributeValue("Text", txtText.Text); xmlLanguageNode.SetAttributeValue("Tooltip", txtTooltip.Text); if (xmlStructNode.Attribute("PredefinedUrl") == null || string.IsNullOrEmpty(xmlStructNode.Attribute("PredefinedUrl").Value)) { xmlLanguageNode.SetAttributeValue("NavigateUrl", txtLink.Text); } else { var xPredefinedNavi = Constants.Links[xmlStructNode.Attribute("PredefinedUrl").Value]; if (xPredefinedNavi != null) { string url = xPredefinedNavi.Url; xmlLanguageNode.SetAttributeValue("NavigateUrl", url); string baseFileName = "Navigation"; if (!string.IsNullOrEmpty(xPredefinedNavi.LocalizationBaseFileName)) { baseFileName = xPredefinedNavi.LocalizationBaseFileName; } xmlLanguageNode.SetAttributeValue("Text", GuiLanguage.GetGuiLanguage(baseFileName, translationNeutralLanguage).GetString(xPredefinedNavi.UrlTextKey) ?? Request.Form[txtText.UniqueID]); txtText.Text = xmlLanguageNode.Attribute("Text").Value; } else { xmlLanguageNode.SetAttributeValue("NavigateUrl", null); } } csb.hisp_Navigation_SaveNavigationLanguage(navId, translationNeutralLanguage, xmlLanguage.ToString(), string.Empty); }