Exemplo n.º 1
0
    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;
        }
    }