public int Update(RoleFeaturePermission permission) { var dbCommand = _dbHelper.GetStoredProcCommand(SP_Create); _dbHelper.AddInParameter(dbCommand, "@RoleId", System.Data.DbType.Int32, permission.RoleId); _dbHelper.AddInParameter(dbCommand, "@FeatureId", System.Data.DbType.Int32, permission.FeatureId); _dbHelper.AddInParameter(dbCommand, "@Permission", System.Data.DbType.Int32, permission.Permission); return(_dbHelper.ExecuteNonQuery(dbCommand)); }
public ActionResult SavePermissions(string nodeIds, string roleId) { var result = false; string[] featureIds = nodeIds.Split(',').Distinct().ToArray(); var existingFeatures = _db.ScreenFeatures.Include(r => r.Roles).Where(r => r.Roles.Any(ro => ro.RoleId == roleId)).ToList(); var allScreenFeatures = _db.ScreenFeatures.ToList(); RoleFeaturePermission rfp = new RoleFeaturePermission(); rfp.RoleId = roleId; try { foreach (var item in allScreenFeatures) { var feature = existingFeatures.FirstOrDefault(f => f.Id == item.Id); if (featureIds.FirstOrDefault(s => s == item.Id.ToString()) != null) { if (feature == null) { rfp.FeatureId = item.Id; if (item.Roles == null) { item.Roles = new List <RoleFeaturePermission>(); } item.Roles.Add(rfp); _db.SaveChanges(); } } else if (feature != null) { rfp = _db.RolesPermissions.FirstOrDefault(rp => rp.FeatureId == feature.Id && rp.RoleId == roleId); // rfp.FeatureId = feature.Id; _db.RolesPermissions.Remove(rfp); _db.SaveChanges(); } rfp = new RoleFeaturePermission { RoleId = roleId }; } result = true; } catch { result = false; } HttpContext.Session["AccessFeatures"] = null; return(Json(new { Success = result })); }
public RoleFeaturePermission Get(int roleId, int featureId) { var items = GetInternal(roleId, featureId); var matchItems = items.Where(p => p.RoleId == roleId && p.FeatureId == featureId).ToList(); RoleFeaturePermission item = null; if (matchItems.Count > 0) { item = matchItems[0]; } else { item = new RoleFeaturePermission(); } return(item); }
public int Create(RoleFeaturePermission permission) { var dbCommand = _dbHelper.GetStoredProcCommand(SP_Create); _dbHelper.AddInParameter(dbCommand, "@RoleId", System.Data.DbType.Int32, permission.RoleId); _dbHelper.AddInParameter(dbCommand, "@FeatureId", System.Data.DbType.Int32, permission.FeatureId); _dbHelper.AddInParameter(dbCommand, "@Permission", System.Data.DbType.Int32, permission.Permission); _dbHelper.AddReturnParameter(dbCommand, "@return", System.Data.DbType.Int32); int ret = _dbHelper.ExecuteNonQuery(dbCommand); int id = -1; if (ret > 0) { id = (int)dbCommand.Parameters["@return"].Value; } return(id); }
private List <RoleFeaturePermission> GetInternal(int roleId, int featureId) { var dbCommand = _dbHelper.GetStoredProcCommand(SP_Select); if (roleId > 0) { _dbHelper.AddInParameter(dbCommand, "@RoleId", System.Data.DbType.Int32, roleId); } if (featureId > 0) { _dbHelper.AddInParameter(dbCommand, "@FeatureId", System.Data.DbType.Int32, featureId); } List <RoleFeaturePermission> items = new List <RoleFeaturePermission>(); var reader = _dbHelper.ExecuteReader(dbCommand); if (reader.HasRows) { while (reader.Read()) { RoleFeaturePermission item = new RoleFeaturePermission(); item.Id = (int)reader["Id"]; item.RoleId = (int)reader["RoleId"]; item.FeatureId = (int)reader["FeatureId"]; item.Permission = (int)reader["Permission"]; items.Add(item); } } reader.Close(); _dbHelper.Close(dbCommand); return(items); }
public int Update(RoleFeaturePermission rfPermission) { return(_rfpdao.Update(rfPermission)); }