Beispiel #1
0
 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);
     }
 }
Beispiel #2
0
 /// <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);
 }
Beispiel #3
0
        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);
            }
        }