public static PresetInfo GetPresetDetails(string TemplateName, int PortalID)
 {
     string presetPath = Decide.IsTemplateDefault(TemplateName.Trim()) ? Utils.GetPresetPath_DefaultTemplate(TemplateName) : Utils.GetPresetPath(TemplateName);
     presetPath += "/" + "pagepreset.xml";
     PresetInfo objPreset = new PresetInfo();
     try
     {
         objPreset = PresetHelper.LoadPresetDetails(presetPath);
         PageController objPageController = new PageController();
         List<PageEntity> lstMenu = objPageController.GetMenuFront(PortalID, false);
         foreach (PageEntity obj in lstMenu)
         {
             obj.ChildCount = lstMenu.Count(
                 delegate(PageEntity objMenu)
                 {
                     return (objMenu.ParentID == obj.PageID);
                 }
                 );
         }
         List<string> lstPages = new List<string>();
         List<KeyValue> lstLayout = new List<KeyValue>();
         foreach (KeyValue kvp in objPreset.lstLayouts)
         {
             string[] arrPage = kvp.Value.Split(',');
             List<string> lstNewPage = new List<string>();
             foreach (string page in arrPage)
             {
                 bool exists = lstMenu.Exists(
                        delegate(PageEntity obj)
                        {
                            return obj.PageName.TrimStart('-') == page;
                        }
                     );
                 if (exists || page.ToLower() == "all")
                 {
                     lstNewPage.Add(page);
                 }
             }
             if (lstNewPage.Count > 0)
             {
                 lstLayout.Add(new KeyValue(kvp.Key, string.Join(",", lstNewPage.ToArray())));
             }
         }
         objPreset.lstLayouts = lstLayout;
         PresetHelper.WritePreset(presetPath, objPreset);
         return objPreset;
     }
     catch (Exception)
     {
         throw;
     }
 }