public void updatePermission()
    {
       

        foreach (GridViewRow row in grdFunctions.Rows)
        {
            if (row.RowType == DataControlRowType.DataRow)
            {
                newPermission = new Permission();
                newPermission.FunctionId = Convert.ToInt32(grdFunctions.DataKeys[row.RowIndex]["FunctionId"]);
                newPermission.RoleId = Convert.ToInt32(Page.ViewState["RoleId"]);
                newPermission.CompanyId = Page.Company.CompanyId;

                CheckBox chkRead = (CheckBox)row.Cells[1].FindControl("chkRead");
                CheckBox chkWrite = (CheckBox)row.Cells[2].FindControl("chkWrite");

                if (chkRead.Checked)
                    newPermission.PermissionTypeId = 1;

                if (chkWrite.Checked)
                    newPermission.PermissionTypeId = 2;

                using (permissionManager = new PermissionManager(null))
                {
                    permission = permissionManager.GetPermission(newPermission.FunctionId, newPermission.RoleId, newPermission.CompanyId);
                    if (chkRead.Checked || chkWrite.Checked)
                    {
                        permissionManager.InsertVerifying(permission, newPermission);
                    }
                    else if (permission != null)
                    {
                        permissionManager.Delete(permission);
                    }
                }
            }
        }
    }
        /// <summary>
        /// Method to create a permission
        /// </summary>
        /// <param name="planId"></param>
        /// <param name="roleId"></param>
        /// <param name="companyId"></param>
        private void CreatePermissions(int planId, int roleId, int companyId)
        {
            var permissionManager = new PermissionManager(this);
            var functionManager = new FunctionManager(this);
            IList<Function> functions = functionManager.GetFunctionsByPlan(planId);

            foreach (Function function in functions)
            {
                //Below the line was changed to give the new object Permission
                //to method permissionManager.Insert an object each time it is called
                var newPermission = new Permission();
                newPermission.FunctionId = function.FunctionId;
                newPermission.PermissionTypeId = (int)AccessControlActions.Change;
                newPermission.RoleId = roleId;
                newPermission.CompanyId = companyId;
                permissionManager.Insert(newPermission);
            }
        }