We followed the directions you provided above and it seems to partially work. It seems like the overridden methods are called when editing the Edition features and Tenant features.
Here is a list of items that are still NOT working.
To prove this, we override all the "GetValue" methods in the FeatureValueStore. For a specific feature, AppFeatures.MaxUserCount, we are hard coding the value to "1000".
We will send a link by email to download our "test" project.
Any ideas on how we can do this?
We are able to override SetEditionFeatureValueAsync
like you have done here. But we aren't able to override the GetValueOrNull
in order to add our own layer between editions and tenant settings. Our GetValueOrNull
override never gets called.
We did try that. We can also replicate in the vanilla project from aspnet zero. Heres what I did there.
Add this override to the existing aspnet zero class FeatureValueStore
:
public override Task<string> GetValueOrNullAsync(int tenantId, string featureName)
{
return base.GetValueOrNullAsync(tenantId, featureName);
}
Add this to the core module, as like mentioned above:
Configuration.ReplaceService<IFeatureValueStore, FeatureValueStore>(DependencyLifeStyle.Transient);
The override here never gets hit. I tested by doing the CreateFriendshipWithDifferentTenant
api request in the FriendshipAppService
which calls for FeatureChecker.IsEnabledAsync
.When IsEnabled is called for I would expect my override to get hit. Are we missing something?
We are looking to extended the abp features functionality by adding our own layer between tenant and edition feature sets. We think there are a few different methods we might be able to override in order to achieve this. We are adding our overrides to this file, which is part of abp. One of which is GetValueOrNullAsync from the AbpFeatureValueStore.cs
, although when running our project, this override is not being called.
Is there something we are missing or something else we need to do in order for our override to be called?
I was mistaken. I was thinking events work across different contexts(aka two browser tabs), but I think they are only within the same context. Thus a trigger in one browser window wouldn't be received in another window or tab. Is that correct?
We have a abp.event that is listening in a component that is used in two different angular modules. But it seems like we only receive an event if it is triggered in the same module as the abp.event.on. Is that expected? And is there a recommendation on how to handle this scenario where it is in two different modules?
There is also no way to delete a webhook subscription. Is this by design or an oversight?
I find it odd that when calling the AddSubscription API in the WebhookSubscriptionAppService, I can pass in the IsActive property and it is honored. But when I try to "toggle" the IsActive property with UpdateSubscription API, the IsActive is not honored. Feels like a bug to me but maybe I'm not understanding something??
Github issue: https://github.com/aspnetzero/aspnet-zero-core/issues/5009