/// <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())); }
/// <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())); }