Activities of "Bryan-EDV"

Hi,

When using the TenantSettingValueProvider to retrieve the setting, is it possible to get a value for the host as well? for example, if the value is null for the tenant i want to fallback to the value from the host level

How can we have these settings configurable form the UI (Angular)?

I would like to be able to log in as a tenant admin and configure the URL and API key for the 3rd party service in the UI

I know ABP has a settings page but was not able to find the documentation for updating the UI page for new properties

Business requirement: We need to connect to 3rd party services (OpenAI) via connection sting and API key. Each tenant would have their own connection sting and API key. However if not defined on the tenant level, we need to fallback to a host-defined connection string and API key.

Question: Would settings module be suitable for handling this use case or would it be better add new columns to the SaasTenant table to track the connection string and API keys? We need the API keys to be encrypted if it is being stored in the Database. Would need your support on the optimal solution for this requirement

Thank you

Thank you, I think we can close off this ticket then.

FYI I found this: https://github.com/abpframework/abp/issues/18793

That's strange, because currently any of my DB operations will not update the DB until the application is shut down. I've tried using the [UnitOfWork] attribute, and also the autoSave = true in the .InsertAsync method

Any suggestions besides using the UnitOfWorkManager?

Or

Move MessagingHub to Application project.

public class MessageHandlingService : AbpSolution7AppService, IMessageHandlingService 
{ 
    private readonly IHubContext<MessagingHub> _messagingHub; 
 
    public MessageHandlingService(IHubContext<MessagingHub> messagingHub) 
    { 
        _messagingHub = messagingHub; 
    } 
 
    public virtual async Task HandleMessage(string connectionId, string message) 
    { 
        Console.WriteLine(connectionId); 
        Console.WriteLine(message); 
        await _messagingHub.Clients.Client(connectionId).SendAsync("ReceiveMessage", message); 
    } 
} 

Thank you Shi Wei,

In that case I will attempt this method, so as to maintain any auditing / uow capabilities.

Just to clarify the application structure is like this MessageHub --has-a--> Service1 (does not inherit xxxAppService) --has-a--> Service2 (inherits xxxAppService)

would the method calls in Service 2 have an interceptor (uow, auditing) capabiilities? Thank you

Thank you Shi Wei,

When i don't inherit the MyApplicationAppService in my application service, it just means that:

  1. I need to manually register for dependency injection using ITransientDependency/ IScopedDependency / ISingletonDependency
  2. No access to ABP defined properties such as CurrentUser / CurrentTenant
  3. Any other critical changes to consider?

Is there any impact on the UOW scope? All along I've not inherited MyApplicationAppService and I realized that for my DB transactions to complete, I keep needing to add

using(var uow = _unitOfWorkManager.Begin(requiresNew: true)){ 
...

Does that relate to inheriting MyApplicationAppService? Or is that because everything is happening in a single UOW for the websocket connection?

Thank you ShiWei,

I've sent the file.

Once application launched, go to https://localhost:44349/htmlpage.html then send a message. You will see this in your dev tools

Then, you will see the BE error console as raised above (snippet):

Method may only be called on a Type for which Type.IsGenericParameter is true. etc...

To resolve the error, check out my commented code in MessagingHub.cs. Swap out the method overload. However this would not allow us to pass a callback function.

Hi ShiWei,

I've noticed a similar error message pop up whenever I try to call this method in ICommunicationService

    Task HandleMessage(string connectionId, string message, System.Func&lt;string, string, Task> signalCallback)

I've made CommunicationService inherit MyApplicationAppService and the moment this method is called, it throws an error with the same message as shown above

In MessagingHub the error is thrown when the code at line 50 is called

the signalCallback passed into HandleMessage is being defined in MessagingHub:

public async Task SendMessage(string connectionId, string message)
    {
        _logger.LogInformation(">>> Sending WebRTC message to {connectionId}: {message}", connectionId, message);
        await Clients.Client(connectionId).SendAsync("ReceiveWebRtcMessage", message);
    }

Do you have any insights to the error message and possible resolution for it? I have some suspicion that it is something to do with Func<string, string, Task> callback function passed as a parameter

Showing 71 to 80 of 119 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on December 12, 2025, 10:36
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.