示例#1
0
        /// <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);
            }
        }
示例#2
0
        /// <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;
            }
        }
示例#3
0
        /// <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);
        }
示例#4
0
        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
                }
            }
        }
示例#5
0
        /// <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;
            }
        }