/// <summary> /// Performs the save data. /// </summary> private void PerformSaveData() { string[] Ids = GetCheckedItems(); List <CpInfo> userList = new List <CpInfo>(); CustomPageEntity page = null; if (!this.IsAdmin) { page = CustomPageManager.GetCustomPage(PageUid, null, Mediachase.IBN.Business.Security.CurrentUser.UserID); } else { page = CustomPageManager.GetCustomPage(PageUid, ProfileId, UserId); } string userData = page.JsonData; Guid templateUid = page.TemplateId; userList = UtilHelper.JsonDeserialize <List <CpInfo> >(userData.Replace("\\", "")); foreach (CpInfo cpItem in userList) { if (cpItem.Id == this.ColumnId) { foreach (string id in Ids) { CpInfoItem newItem = new CpInfoItem(); newItem.Collapsed = "false"; newItem.Id = id; newItem.InstanseUid = Guid.NewGuid().ToString("N"); cpItem.Items.Add(newItem); } } } string newJsonData = UtilHelper.JsonSerialize(userList); //Perform save to storage if (!IsAdmin) { CustomPageManager.UpdateCustomPage(PageUid, newJsonData, templateUid, null, Mediachase.IBN.Business.Security.UserID); } else { CustomPageManager.UpdateCustomPage(PageUid, newJsonData, templateUid, ProfileId, UserId); } }
/// <summary> /// Handles the ItemCommand event of the grdMain control. /// </summary> /// <param name="source">The source of the event.</param> /// <param name="e">The <see cref="System.Web.UI.WebControls.DataGridCommandEventArgs"/> instance containing the event data.</param> void grdMain_ItemCommand(object source, DataGridCommandEventArgs e) { if (e.CommandName == "Add") { string Ids = e.CommandArgument.ToString(); List <CpInfo> userList = new List <CpInfo>(); CustomPageEntity page = null; if (!this.IsAdmin) { page = CustomPageManager.GetCustomPage(PageUid, null, Mediachase.IBN.Business.Security.CurrentUser.UserID); } else { page = CustomPageManager.GetCustomPage(PageUid, ProfileId, UserId); } string userData = page.JsonData; Guid templateUid = page.TemplateId; List <ColumnInfo> list = new List <ColumnInfo>(); if (this.IsAdmin) { WorkspaceTemplateInfo wti = WorkspaceTemplateFactory.GetTemplateInfo(templateUid.ToString()); list = UtilHelper.JsonDeserialize <List <ColumnInfo> >(wti.ColumnInfo); } userList = UtilHelper.JsonDeserialize <List <CpInfo> >(userData.Replace("\\", "")); List <string> currentColumnsId = new List <string>(); foreach (CpInfo cpItem in userList) { currentColumnsId.Add(cpItem.Id); } List <CpInfo> newUserList = new List <CpInfo>(); newUserList.AddRange(userList); if (this.IsAdmin) { foreach (CpInfo cpItem in userList) { foreach (ColumnInfo info in list) { if (currentColumnsId.Contains(info.Id)) { continue; } CpInfo cInfo = new CpInfo(); cInfo.Id = info.Id; cInfo.Items = new List <CpInfoItem>(); newUserList.Add(cInfo); } } } foreach (CpInfo cpItem in newUserList) { if (cpItem.Id == this.ColumnId) { CpInfoItem newItem = new CpInfoItem(); newItem.Collapsed = "false"; newItem.Id = Ids; newItem.InstanseUid = Guid.NewGuid().ToString("N"); cpItem.Items.Add(newItem); } } string newJsonData = UtilHelper.JsonSerialize(newUserList); // Perform save to storage if (!IsAdmin) { CustomPageManager.UpdateCustomPage(PageUid, newJsonData, templateUid, null, Mediachase.IBN.Business.Security.UserID); } else { CustomPageManager.UpdateCustomPage(PageUid, newJsonData, templateUid, ProfileId, UserId); } divTemplateUpdate.Style.Add(HtmlTextWriterStyle.Display, "block"); this.ForcePostback = true; } }
/// <summary> /// Performs the save data. /// </summary> private void PerformSaveData() { string[] Ids = GetCheckedItems(); List<CpInfo> userList = new List<CpInfo>(); CustomPageEntity page = null; if (!this.IsAdmin) page = CustomPageManager.GetCustomPage(PageUid, null, Mediachase.IBN.Business.Security.CurrentUser.UserID); else page = CustomPageManager.GetCustomPage(PageUid, ProfileId, UserId); string userData = page.JsonData; Guid templateUid = page.TemplateId; userList = UtilHelper.JsonDeserialize<List<CpInfo>>(userData.Replace("\\", "")); foreach (CpInfo cpItem in userList) { if (cpItem.Id == this.ColumnId) { foreach (string id in Ids) { CpInfoItem newItem = new CpInfoItem(); newItem.Collapsed = "false"; newItem.Id = id; newItem.InstanseUid = Guid.NewGuid().ToString("N"); cpItem.Items.Add(newItem); } } } string newJsonData = UtilHelper.JsonSerialize(userList); //Perform save to storage if (!IsAdmin) CustomPageManager.UpdateCustomPage(PageUid, newJsonData, templateUid, null, Mediachase.IBN.Business.Security.UserID); else CustomPageManager.UpdateCustomPage(PageUid, newJsonData, templateUid, ProfileId, UserId); }
public void SaveChanges(IDictionary context) { if (context == null) { // update settings try { string currentLayout = string.Empty; // 1. Get layout string for selected items string[] ids = GetCheckedItems(); List <CpInfo> userList = null; string userSettings = GetUserPageSettings(); // deserialize current user settings System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer(); try { userList = jss.Deserialize <List <CpInfo> >(userSettings); } catch { // something's wrong with user settings } foreach (CpInfo cpItem in userList) { if (cpItem.Id == this.ColumnId) { // clear all existing items cpItem.Items.Clear(); // add selected blocks foreach (string id in ids) { CpInfoItem newItem = new CpInfoItem(); newItem.Collapsed = "false"; newItem.Id = id; newItem.InstanceUid = Guid.NewGuid().ToString("N"); cpItem.Items.Add(newItem); } } } currentLayout = jss.Serialize(userList); // 2. Save changes ProfileContext.Current.Profile.PageSettings.SetSettingString(this.PageUid, currentLayout); ProfileContext.Current.Profile.Save(); } catch (Exception ex) { // TODO: handle exception } } else if (context[Mediachase.Ibn.Web.UI.Layout.Modules.AddFramePopup._SaveOptionKey] != null && String.Compare((string)context[Mediachase.Ibn.Web.UI.Layout.Modules.AddFramePopup._SaveOptionKey], Mediachase.Ibn.Web.UI.Layout.Modules.AddFramePopup._SaveDefaultKey, true) == 0) { // reset to default settings try { ProfileContext.Current.Profile.PageSettings.SetSettingString(this.PageUid, Mediachase.Commerce.Manager.Dashboard.Home._DefaultControls); ProfileContext.Current.Profile.Save(); } catch (Exception ex) { // TODO: handle exception } } }
/// <summary> /// Handles the ItemCommand event of the grdMain control. /// </summary> /// <param name="source">The source of the event.</param> /// <param name="e">The <see cref="System.Web.UI.WebControls.DataGridCommandEventArgs"/> instance containing the event data.</param> void grdMain_ItemCommand(object source, DataGridCommandEventArgs e) { if (e.CommandName == "Add") { string Ids = e.CommandArgument.ToString(); List<CpInfo> userList = new List<CpInfo>(); CustomPageEntity page = null; if (!this.IsAdmin) page = CustomPageManager.GetCustomPage(PageUid, null, Mediachase.IBN.Business.Security.CurrentUser.UserID); else page = CustomPageManager.GetCustomPage(PageUid, ProfileId, UserId); string userData = page.JsonData; Guid templateUid = page.TemplateId; List<ColumnInfo> list = new List<ColumnInfo>(); if (this.IsAdmin) { WorkspaceTemplateInfo wti = WorkspaceTemplateFactory.GetTemplateInfo(templateUid.ToString()); list = UtilHelper.JsonDeserialize<List<ColumnInfo>>(wti.ColumnInfo); } userList = UtilHelper.JsonDeserialize<List<CpInfo>>(userData.Replace("\\", "")); List<string> currentColumnsId = new List<string>(); foreach (CpInfo cpItem in userList) currentColumnsId.Add(cpItem.Id); List<CpInfo> newUserList = new List<CpInfo>(); newUserList.AddRange(userList); if (this.IsAdmin) { foreach (CpInfo cpItem in userList) { foreach (ColumnInfo info in list) { if (currentColumnsId.Contains(info.Id)) continue; CpInfo cInfo = new CpInfo(); cInfo.Id = info.Id; cInfo.Items = new List<CpInfoItem>(); newUserList.Add(cInfo); } } } foreach (CpInfo cpItem in newUserList) { if (cpItem.Id == this.ColumnId) { CpInfoItem newItem = new CpInfoItem(); newItem.Collapsed = "false"; newItem.Id = Ids; newItem.InstanseUid = Guid.NewGuid().ToString("N"); cpItem.Items.Add(newItem); } } string newJsonData = UtilHelper.JsonSerialize(newUserList); // Perform save to storage if (!IsAdmin) CustomPageManager.UpdateCustomPage(PageUid, newJsonData, templateUid, null, Mediachase.IBN.Business.Security.UserID); else CustomPageManager.UpdateCustomPage(PageUid, newJsonData, templateUid, ProfileId, UserId); divTemplateUpdate.Style.Add(HtmlTextWriterStyle.Display, "block"); this.ForcePostback = true; } }