public ResponseBase Create(SRoLe role, List <string> listRolePermission) { using (var db = new IEDEntities()) { ResponseBase result = null; SRolePermission rolePermission; try { result = new ResponseBase(); if (role != null) { if (CheckName(role.Id, role.RoleName, role.CompanyId, db) != null) { result.IsSuccess = false; result.Errors.Add(new Error() { MemberName = "Create Role", Message = "Tên Nhóm Quyền này đã tồn tại.\nVui lòng chọn lại Tên khác." }); } else { db.SRoLes.Add(role); if (listRolePermission != null && listRolePermission.Count > 0) { // add role permission foreach (var item in listRolePermission) { var permissionArray = item.Split('|'); rolePermission = new SRolePermission(); rolePermission.RoleId = role.Id; rolePermission.ModuleId = int.Parse(permissionArray[0]); rolePermission.FeatureId = int.Parse(permissionArray[1]); rolePermission.PermissionId = int.Parse(permissionArray[2]); rolePermission.CreatedUser = role.CreatedUser; rolePermission.CreatedDate = DateTime.Now; db.SRolePermissions.Add(rolePermission); } } db.SaveChanges(); result.IsSuccess = true; } } else { result.IsSuccess = false; result.Errors.Add(new Error() { MemberName = "Create Role", Message = "Không thể tạo được Nhóm Quyền. Vui Lòng kiểm tra lại." }); } } catch (Exception ex) { throw ex; } return(result); } }
/// <summary> /// 保存资源权限 /// </summary> /// <param name="pers"></param> /// <returns></returns> public int SaveOpermissions(List <SOPermission> pers, int roleId) { RemovePermissionByRole(roleId); foreach (SOPermission p in pers) { if (p.OperatorID > 0) { opRepository.Insert(p); } else { SRolePermission rp = new SRolePermission(); rp.RoleID = roleId; rp.ResourceID = p.ResourceID; rpRepository.Insert(rp); } } return(pers.Count); }
public ResponseBase Update(SRoLe role, List <string> listRolePermission) { using (var db = new IEDEntities()) { ResponseBase result = null; SRolePermission rolePermission; List <SRolePermission> oldRolePermissionList; SRoLe oldRole; try { result = new ResponseBase(); if (role != null) { if (CheckName(role.Id, role.RoleName, role.CompanyId, db) != null) { result.IsSuccess = false; result.Errors.Add(new Error() { MemberName = "Create Role", Message = "Tên Nhóm Quyền này đã tồn tại.\nVui lòng chọn lại Tên khác." }); } else { oldRole = db.SRoLes.FirstOrDefault(x => x.Id == role.Id && !x.IsDeleted && !x.SCompany.IsDeleted); if (oldRole != null) { oldRole.RoleName = role.RoleName; oldRole.Description = role.Description; oldRole.UpdatedUser = oldRole.CreatedUser; oldRole.UpdatedDate = DateTime.Now; db.Entry <SRoLe>(oldRole).State = System.Data.Entity.EntityState.Modified; // get all old role permission of role oldRolePermissionList = (from x in db.SRolePermissions where x.RoleId == oldRole.Id && !x.IsDeleted select x).ToList(); // remove all of old data if (oldRolePermissionList != null && oldRolePermissionList.Count > 0) { foreach (var roleItem in oldRolePermissionList) { roleItem.IsDeleted = true; roleItem.DeletedUser = oldRole.UpdatedUser; roleItem.DeletedDate = DateTime.Now; db.Entry <SRolePermission>(roleItem).State = System.Data.Entity.EntityState.Modified; } } //add new data if (listRolePermission != null && listRolePermission.Count > 0) { #region // add role permission foreach (var item in listRolePermission) { var permissionArray = item.Split('|'); rolePermission = new SRolePermission(); rolePermission.RoleId = oldRole.Id; rolePermission.ModuleId = int.Parse(permissionArray[0]); rolePermission.FeatureId = int.Parse(permissionArray[1]); rolePermission.PermissionId = int.Parse(permissionArray[2]); rolePermission.CreatedUser = oldRole.CreatedUser; rolePermission.CreatedDate = DateTime.Now; db.SRolePermissions.Add(rolePermission); } #endregion } db.SaveChanges(); result.IsSuccess = true; } else { result.IsSuccess = false; result.Errors.Add(new Error() { MemberName = "Update Role", Message = "Nhóm Quyền đang thao tác không tồn tại. Vui Lòng kiểm tra lại." }); } } } else { result.IsSuccess = false; result.Errors.Add(new Error() { MemberName = "Create Role", Message = "Không thể tạo được Nhóm Quyền. Vui Lòng kiểm tra lại." }); } } catch (Exception ex) { throw ex; } return(result); } }