protected void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                CustomList<SECURITY.DAO.SecurityRule> lstSecurityRule = SecurityRuleList;
                if (lstSecurityRule.Count == 0)
                {
                    SECURITY.DAO.SecurityRule newSecurityRule = new SECURITY.DAO.SecurityRule();
                    lstSecurityRule.Add(newSecurityRule);
                }

                SetDataControlsToSecurityRuleObject(ref lstSecurityRule);
                CustomList<SECURITY.DAO.Menu> AllMenu = (CustomList<SECURITY.DAO.Menu>)Session["SecurityRule_MenuList"];
                CustomList<SECURITY.DAO.Menu> selectedMenu = AllMenu.FindAll(f => f.CanSelect || f.CanInsert || f.CanUpdate || f.CanDelete);
                objSecurityRuleDetailList = new CustomList<RuleDetails>();
                foreach (SECURITY.DAO.Menu m in selectedMenu)
                {
                    RuleDetails obj = new RuleDetails();
                    obj.ApplicationID = m.ApplicationID;
                    obj.ObjectID = m.MenuID;
                    obj.ObjectType = "menu";
                    obj.CanSelect = m.CanSelect;
                    obj.CanInsert = m.CanInsert;
                    obj.CanUpdate = m.CanUpdate;
                    obj.CanDelete = m.CanDelete;
                    objSecurityRuleDetailList.Add(obj);
                }
                //objSecurityRuleDetailList = SecurityRuleDetailList;
                if (!CheckUserAuthentication(lstSecurityRule, objSecurityRuleDetailList)) return;
                if (lstSecurityRule.IsNotNull())
                {
                    #region Delete
                    CustomList<RuleDetails> securityRuleObject = manager.GetAllSecurityRule_ObjectWithSecurityRule(lstSecurityRule[0].SecurityRuleCode);
                    if (securityRuleObject.Count != 0)
                    {
                        foreach (RuleDetails obj in securityRuleObject)
                        {
                            obj.Delete();
                        }
                        manager.TempSecurityRule_ObjectDelete(ref securityRuleObject);
                    }
                    #endregion

                    manager.SaveSecurityRule(ref lstSecurityRule, ref objSecurityRuleDetailList);
                    txtSecurityRuleCode.Text = manager.SecurityRuleInfoID;
                    this.SuccessMessage = (StaticInfo.SavedSuccessfullyMsg);
                }
            }
            catch (SqlException ex)
            {
                this.ErrorMessage = (ExceptionHelper.getSqlExceptionMessage(ex));
            }
            catch (Exception ex)
            {
                this.ErrorMessage = (ExceptionHelper.getExceptionMessage(ex));
            }
        }