Example #1
0
        /// <summary>
        /// This method inserts a new record in the table.
        /// Change this method to alter how records are inserted.
        /// </summary>
        /// <param name=entity>entity</param>
        public void Insert(PackageFunction entity)
        {
            DbContext.PackageFunctions.InsertOnSubmit(entity);
            DbContext.SubmitChanges();


            var rManager = new RolesManager(this);
            IQueryable <Role> queryAdminRoles = (from companies in DbContext.Companies
                                                 join roles in DbContext.Roles on companies.CompanyId equals
                                                 roles.CompanyId
                                                 join plan in DbContext.Plans on companies.PlanId equals plan.PlanId
                                                 where plan.PackageId == entity.PackageId && roles.Name.Contains("Admin")
                                                 select roles);


            List <Role> listAdminRoles = queryAdminRoles.ToList();

            var permissionManager = new PermissionManager(this);

            foreach (Role role in listAdminRoles)
            {
                if (permissionManager.GetPermission(entity.FunctionId, role.RoleId, role.CompanyId) == null)
                {
                    var permission = new Permission();
                    permission.CompanyId        = role.CompanyId;
                    permission.FunctionId       = entity.FunctionId;
                    permission.PermissionTypeId = (int)AccessControlActions.Change;
                    permission.RoleId           = role.RoleId;
                    permissionManager.Insert(permission);
                }
            }
        }
    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);
                    }
                }
            }
        }
    }