Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
 /// <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));
 }