public Task <PermisionCheckResult> CheckAsync <T>(T request) where T : IUserCommand { if (_serviceProvider.GetService(typeof(IPermissionCheck <T>)) is IPermissionCheck <T> check) { return(check.CheckAsync(request)); } return(Task.FromResult(PermisionCheckResult.Ok())); }
private void Handle(PermisionCheckResult result) { if (result.Success) { _logger.LogDebug("Permission check succeeded for command {Command}", CommandTypeName); return; } _logger.LogDebug("Permission check failed for command {Command} with message {Message}", CommandTypeName, result.Message); throw new PermissionException(result.Message); }