예제 #1
0
 /// <summary>
 /// 删除用户角色。
 /// </summary>
 /// <param name="role">用户角色实例。</param>
 /// <param name="cancellationToken">取消标识。</param>
 /// <returns>返回角色删除结果。</returns>
 public override async Task <IdentityResult> DeleteAsync(TRole role, CancellationToken cancellationToken = default)
 {
     cancellationToken.ThrowIfCancellationRequested();
     if (role == null)
     {
         throw new ArgumentNullException(nameof(role));
     }
     // ReSharper disable once SuspiciousTypeConversion.Global
     if (role is IRoleEventHandler <TRole> handler)
     {
         if (await RoleContext.BeginTransactionAsync(async db =>
         {
             if (!await handler.OnDeleteAsync(db, cancellationToken))
             {
                 return(false);
             }
             if (!await db.DeleteAsync(role.Id, cancellationToken))
             {
                 return(false);
             }
             return(true);
         }, cancellationToken: cancellationToken))
         {
             return(IdentityResult.Success);
         }
     }
     else if (await RoleContext.DeleteAsync(role.Id, cancellationToken))
     {
         return(IdentityResult.Success);
     }
     return(IdentityResult.Failed(ErrorDescriber.DefaultError()));
 }
예제 #2
0
        /// <summary>
        /// 删除用户角色。
        /// </summary>
        /// <param name="role">用户角色实例。</param>
        /// <param name="cancellationToken">取消标识。</param>
        /// <returns>返回角色删除结果。</returns>
        public override async Task <IdentityResult> DeleteAsync(TRole role, CancellationToken cancellationToken = default)
        {
            cancellationToken.ThrowIfCancellationRequested();
            if (role == null)
            {
                throw new ArgumentNullException(nameof(role));
            }

            if (await RoleContext.DeleteAsync(role.Id, cancellationToken))
            {
                return(IdentityResult.Success);
            }

            return(IdentityResult.Failed(ErrorDescriber.DefaultError()));
        }