コード例 #1
0
        protected void btn_DesignMode_Click(object sender, CommandEventArgs e)
        {
            if (e.CommandArgument != null)
            {
                string _pageindexid = e.CommandArgument.ToString();

                PageEditorMgr myPageEditorMgr = new PageEditorMgr();

                if (myPageEditorMgr.Chk_Page_Lock(_pageindexid))
                {
                    // Page is Locked
                    Pages.Page_Lock myPage_Lock = myPageEditorMgr.Get_Page_Lock(_pageindexid);

                    if (myPage_Lock.UserID == Security.Users.UserStatus.Current_UserID(this.Page))
                    {
                        // It's same user, check if he open same page
                        PageMgr        MyPageMgr = new PageMgr();
                        NexusCore_Page myPage    = MyPageMgr.Get_Page_ActiveID(_pageindexid);

                        if (myPage_Lock.PageID == myPage.PageID)
                        {
                            // For same user will recover his previous work
                            e2Data[] UpdateData =
                            {
                                new e2Data("Page_LockID", myPage_Lock.Page_LockID),
                                new e2Data("LockDate",    DateTime.Now.ToString())
                            };

                            myPageEditorMgr.Edit_Page_Lock(UpdateData);

                            Response.Redirect(string.Format("PageDesign.aspx?PageIndexID={0}&PageLink=Disable", _pageindexid));
                            return;
                        }
                        else
                        {
                            // For same user but create new session page

                            // Delete Locks
                            myPageEditorMgr.Release_PageLock(_pageindexid);

                            Load_DesignMode();
                            return;
                        }
                    }

                    // Page is released over 10min with no actions
                    if (DateTime.Now.Subtract(myPage_Lock.LockDate).TotalMinutes > 10)
                    {
                        //Tools.AlertMessage.Show_Alert(this.Page, string.Format("<h4>The desgin mode is locked at {0} by other user.<br/> now is realease to you.</h4>", myPage_Lock.LockDate.ToString()), "Page is locked!");

                        // Delete Locks
                        myPageEditorMgr.Release_PageLock(_pageindexid);

                        Load_DesignMode();
                        return;
                    }

                    Tools.AlertMessage.Show_Alert(this.Page, "<h4>The desgin mode is locked <br/> please try again later.</h4>", "Page is locked!");
                }
                else
                {
                    Load_DesignMode();
                }
            }
        }