/// <summary> /// 给用户添加角色 /// </summary> /// <param name="user">用户信息</param> /// <param name="roleName">角色名称</param> /// <returns></returns> public virtual async Task AddToRoleAsync(TUser user, string roleName) { user.CheckNotNull("user"); roleName.CheckNotNull("roleName"); bool exist = await UserRoleMapRepository.CheckExistsAsync(m => m.User.Id.Equals(user.Id) && m.Role.Name == roleName); if (exist) { return; } TRole role = await Task.Run(() => RoleRepository.TrackEntities.Where(m => m.Name == roleName).FirstOrDefault()); if (role == null) { throw new InvalidOperationException("名称为“{0}”的角色信息不存在".FormatWith(roleName)); } TUserRoleMap map = new TUserRoleMap() { User = user, Role = role }; await UserRoleMapRepository.InsertAsync(map); }
/// <summary> /// 检查用户角色映射信息信息是否存在 /// </summary> /// <param name="predicate">检查谓语表达式</param> /// <param name="id">更新的用户角色映射信息编号</param> /// <returns>用户角色映射信息是否存在</returns> public Task <bool> CheckUserRoleMapExists(Expression <Func <UserRoleMap, bool> > predicate, int id = 0) { return(UserRoleMapRepository.CheckExistsAsync(predicate, id)); }