Esempio n. 1
0
 /// <summary>Update a user</summary>
 /// <param name="user">用户实体</param>
 /// <returns>更新成功返回</returns>
 public Task <IdentityResult> UpdateAsync(TUser user, CancellationToken cancellationToken)
 {
     if (user == null)
     {
         throw new ArgumentNullException("user");
     }
     return(RunTask(() => _objectStorage.Update(user), "更新用户失败"));
 }
Esempio n. 2
0
        /// <summary>异步更新一个角色</summary>
        /// <param name="role"></param>
        /// <returns>更新任务</returns>
        public Task <IdentityResult> UpdateAsync(TRole role, CancellationToken cancellationToken)
        {
            if (role == null)
            {
                throw new ArgumentNullException("role");
            }

            return(RunTask(() =>
            {
                _objectStorage.Update(role);
                var roleId = role.Id;
                var userRoles = _objectStorage.FindByQuery <UserRole, ObjectId>(p => p.RoleId == roleId, p => p.Id, true);
                if (userRoles != null && userRoles.Count > 0)
                {
                    userRoles.ForEach(p =>
                    {
                        p.RoleName = role.Name;
                        _objectStorage.Update(p);
                    });
                }
            }, "更新角色"));
        }
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="entity">更新对象</param>
        /// <returns>更新成功后,返回更新后的对象</returns>
        /// <exception cref="AccessException">不允许更新时抛出此异常</exception>
        public virtual TEntity Update(TEntity entity)
        {
            if (CheckAccess(OnCanUpdate))
            {
                OnUpdating(new ActionEventArgs <TEntity>(entity));
                Invoke(() =>
                {
                    _context.Update(entity);
                });

                OnUpdated(new ActionEventArgs <TEntity>(entity));
                return(entity);
            }

            throw new AccessException("CanUpdate");
        }