Ejemplo n.º 1
0
        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
            {
            }
        }