public static int SavePreset(string TemplateName, string ActiveTheme, string ActiveWidth, List <PresetKeyValue> lstLayouts, int portalID) { List <KeyValue> lstLyts = new List <KeyValue>(); foreach (PresetKeyValue kvp in lstLayouts) { lstLyts.Add(new KeyValue(kvp.Key, kvp.Value)); } PresetInfo PresetObj = new PresetInfo(); PresetObj.ActiveTheme = ActiveTheme; PresetObj.ActiveWidth = ActiveWidth; PresetObj.lstLayouts = lstLyts; string presetPath = Decide.IsTemplateDefault(TemplateName.Trim()) ? Utils.GetPresetPath_DefaultTemplate(TemplateName) : Utils.GetPresetPath(TemplateName); string pagepreset = presetPath + "/" + TemplateConstants.PagePresetFile; presetPath += "/" + "pagepreset.xml"; int presetstatus = 0; try { PresetHelper.WritePreset(presetPath, PresetObj); return(presetstatus); } catch (Exception) { throw; } finally { AppErazer.ClearSysHash(ApplicationKeys.ActivePagePreset + "_" + portalID); SageFrame.Common.CacheHelper.Clear("PresetList"); } }
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; } }
protected void btnApply_Click(object sender, EventArgs e) { HttpRuntime.Cache.Remove(CacheKeys.SageFrameJs); HttpRuntime.Cache.Remove(CacheKeys.SageFrameCss); string optimized_path = Server.MapPath(SageFrameConstants.OptimizedResourcePath); IOHelper.DeleteDirectoryFiles(optimized_path, ".js,.css"); if (File.Exists(Server.MapPath(SageFrameConstants.OptimizedCssMap))) { XmlHelper.DeleteNodes(Server.MapPath(SageFrameConstants.OptimizedCssMap), "resourcemaps/resourcemap"); } if (File.Exists(Server.MapPath(SageFrameConstants.OptimizedJsMap))) { XmlHelper.DeleteNodes(Server.MapPath(SageFrameConstants.OptimizedJsMap), "resourcemap/resourcemap"); } PresetInfo preset = new PresetInfo(); preset = PresetHelper.LoadActivePagePreset(TemplateName, GetPageSEOName(Request.Url.ToString())); if (ddlScreen.SelectedItem.ToString() != string.Empty) { preset.ActiveWidth = ddlScreen.SelectedItem.ToString(); } if (ddlThemes.SelectedItem != null && ddlThemes.SelectedItem.ToString() != string.Empty) { preset.ActiveTheme = ddlThemes.SelectedItem.ToString(); } if (ddlLayout.SelectedItem != null && ddlLayout.SelectedItem.ToString() != string.Empty) { preset.ActiveLayout = Path.GetFileNameWithoutExtension(ddlLayout.SelectedItem.ToString()); } List <KeyValue> lstLayouts = preset.lstLayouts; string pageName = Request.Url.ToString(); SageFrameConfig sfConfig = new SageFrameConfig(); pageName = Path.GetFileNameWithoutExtension(pageName); pageName = pageName.ToLower().Equals("default") ? sfConfig.GetSettingsByKey(SageFrameSettingKeys.PortalDefaultPage) : pageName; bool isNewLayout = false; int oldPageCount = 0; bool isNewPage = false; bool deleteRepeat = false; bool duplicateLayout = false; List <string> pageList = new List <string>(); foreach (KeyValue kvp in lstLayouts) { if (kvp.Key == preset.ActiveLayout) { duplicateLayout = true; } string[] pages = kvp.Value.Split(','); pageList.Add(string.Join(",", pages)); if (pages.Count() == 1 && pages.Contains(pageName)) // for single pagename and if page = currentpageName { kvp.Key = preset.ActiveLayout; } else if (pages.Count() > 1 && pages.Contains(pageName)) // for multiple pagename and if page = currentpageName { isNewLayout = true; //its because we have to insert another layout List <string> lstnewpage = new List <string>(); foreach (string page in pages) { if (page.ToLower() != pageName.ToLower()) { lstnewpage.Add(page); } } kvp.Value = string.Join(",", lstnewpage.ToArray()); pageList.Add(kvp.Value); } else { oldPageCount++; } if (kvp.Value == "All" && kvp.Key == preset.ActiveLayout) { deleteRepeat = true; } } if (lstLayouts.Count == oldPageCount) { isNewPage = true; } List <KeyValue> lstNewLayouts = new List <KeyValue>(); if (isNewPage) { bool isAppended = false; foreach (KeyValue kvp in lstLayouts) { if (kvp.Key == preset.ActiveLayout) { if (kvp.Value.ToLower() != "all") { kvp.Value += "," + pageName; } isAppended = true; } lstNewLayouts.Add(new KeyValue(kvp.Key, kvp.Value)); } if (!isAppended) { lstNewLayouts.Add(new KeyValue(preset.ActiveLayout, pageName)); } lstLayouts = lstNewLayouts; } else if (isNewLayout) { bool isAppended = false; bool isAll = false; foreach (KeyValue kvp in lstLayouts) { if (kvp.Key == preset.ActiveLayout) { if (kvp.Value.ToLower() != "all") { kvp.Value += "," + pageName; isAll = true; } isAppended = true; } lstNewLayouts.Add(new KeyValue(kvp.Key, kvp.Value)); } if (!isAppended && !isAll) { lstNewLayouts.Add(new KeyValue(preset.ActiveLayout, pageName)); } lstLayouts = lstNewLayouts; } else if (deleteRepeat) { foreach (KeyValue kvp in lstLayouts) { if (kvp.Value.ToLower() != pageName.ToLower()) { lstNewLayouts.Add(new KeyValue(kvp.Key, kvp.Value)); } } lstLayouts = lstNewLayouts; } else if (duplicateLayout) { string key = preset.ActiveLayout; List <string> pages = new List <string>(); foreach (KeyValue kvp in lstLayouts) { if (kvp.Key.ToLower() != preset.ActiveLayout.ToLower()) { lstNewLayouts.Add(new KeyValue(kvp.Key, kvp.Value)); } else { pages.Add(kvp.Value); } } lstNewLayouts.Add(new KeyValue(key, string.Join(",", pages.ToArray()))); lstLayouts = lstNewLayouts; } preset.lstLayouts = lstLayouts; string presetPath = Decide.IsTemplateDefault(TemplateName.Trim()) ? Utils.GetPresetPath_DefaultTemplate(TemplateName) : Utils.GetPresetPath(TemplateName); string pagepreset = presetPath + "/" + TemplateConstants.PagePresetFile; presetPath += "/" + "pagepreset.xml"; AppErazer.ClearSysHash(ApplicationKeys.ActivePagePreset + "_" + GetPortalID); PresetHelper.WritePreset(presetPath, preset); SageFrame.Common.CacheHelper.Clear("PresetList"); Response.Redirect(Request.Url.OriginalString); }
protected void ddlLayout_SelectedIndexChanged(object sender, EventArgs e) { PresetInfo preset = new PresetInfo(); string pageName = ddlPages.SelectedValue; pageName = Regex.Replace(pageName, "--+", ""); preset = PresetHelper.LoadActivePagePreset(TemplateName, GetPageSEOName(Request.Url.ToString())); List <KeyValue> lstLayouts = preset.lstLayouts; preset.ActiveLayout = ddlLayout.SelectedValue; bool isNewLayout = false; int oldPageCount = 0; bool isNewPage = false; bool deleteRepeat = false; bool duplicateLayout = false; List <string> pageList = new List <string>(); foreach (KeyValue kvp in lstLayouts) { if (kvp.Key == preset.ActiveLayout) { duplicateLayout = true; } string[] pages = kvp.Value.Split(','); pageList.Add(string.Join(",", pages)); if (pages.Count() == 1 && pages.Contains(pageName)) // for single pagename and if page = currentpageName { kvp.Key = preset.ActiveLayout; } else if (pages.Count() > 1 && pages.Contains(pageName)) // for multiple pagename and if page = currentpageName { isNewLayout = true; //its because we have to insert another layout List <string> lstnewpage = new List <string>(); foreach (string page in pages) { if (page.ToLower() != pageName.ToLower()) { lstnewpage.Add(page); } } kvp.Value = string.Join(",", lstnewpage.ToArray()); pageList.Add(kvp.Value); } else { oldPageCount++; } if (kvp.Value == "All" && kvp.Key == preset.ActiveLayout) { deleteRepeat = true; } } if (lstLayouts.Count == oldPageCount) { isNewPage = true; } List <KeyValue> lstNewLayouts = new List <KeyValue>(); if (isNewPage) { bool isAppended = false; foreach (KeyValue kvp in lstLayouts) { if (kvp.Key == preset.ActiveLayout) { if (kvp.Value.ToLower() != "all") { kvp.Value += "," + pageName; } isAppended = true; } lstNewLayouts.Add(new KeyValue(kvp.Key, kvp.Value)); } if (!isAppended) { lstNewLayouts.Add(new KeyValue(preset.ActiveLayout, pageName)); } lstLayouts = lstNewLayouts; } else if (isNewLayout) { bool isAppended = false; bool isAll = false; foreach (KeyValue kvp in lstLayouts) { if (kvp.Key == preset.ActiveLayout) { if (kvp.Value.ToLower() != "all") { kvp.Value += "," + pageName; isAll = true; } isAppended = true; } lstNewLayouts.Add(new KeyValue(kvp.Key, kvp.Value)); } if (!isAppended && !isAll) { lstNewLayouts.Add(new KeyValue(preset.ActiveLayout, pageName)); } lstLayouts = lstNewLayouts; } else if (deleteRepeat) { foreach (KeyValue kvp in lstLayouts) { if (kvp.Value.ToLower() != pageName.ToLower()) { lstNewLayouts.Add(new KeyValue(kvp.Key, kvp.Value)); } } lstLayouts = lstNewLayouts; } else if (duplicateLayout) { string key = preset.ActiveLayout; List <string> pages = new List <string>(); foreach (KeyValue kvp in lstLayouts) { if (kvp.Key.ToLower() != preset.ActiveLayout.ToLower()) { lstNewLayouts.Add(new KeyValue(kvp.Key, kvp.Value)); } else { pages.Add(kvp.Value); } } lstNewLayouts.Add(new KeyValue(key, string.Join(",", pages.ToArray()))); lstLayouts = lstNewLayouts; } preset.lstLayouts = lstLayouts; string presetPath = Decide.IsTemplateDefault(TemplateName.Trim()) ? Utils.GetPresetPath_DefaultTemplate(TemplateName) : Utils.GetPresetPath(TemplateName); string pagepreset = presetPath + "/" + TemplateConstants.PagePresetFile; presetPath += "/" + "pagepreset.xml"; AppErazer.ClearSysHash(ApplicationKeys.ActivePagePreset + "_" + GetPortalID); PresetHelper.WritePreset(presetPath, preset); HttpRuntime.Cache.Remove(CacheKeys.SageFrameJs); HttpRuntime.Cache.Remove(CacheKeys.SageFrameCss); SageFrame.Common.CacheHelper.Clear("PresetList"); pageSEOName = ddlPages.SelectedValue.TrimStart('-'); layoutName = ddlLayout.SelectedValue; //BuildLayoutControl(); //BindModuleControls(); string redirectUrl = BuidRedirectURL(pageSEOName); Response.Redirect(redirectUrl); }