Hi Guys,
I've added a new feature into the application, as shown below:
public static class AppFeatures
{
public const string SubmissionLimit = "App.SubmissionLimit";
public const string StarterSubmissionLimit = "App.StarterSubmissionLimit";
}
public class AppFeatureProvider : FeatureProvider
{
public override void SetFeatures(IFeatureDefinitionContext context)
{
var submissionLimit = context.Create(
AppFeatures.SubmissionLimit,
defaultValue: "true",
displayName: L("SubmissionLimit"),
inputType: new CheckboxInputType()
);
submissionLimit.CreateChildFeature(
AppFeatures.StarterSubmissionLimit,
defaultValue: "100",
displayName: L("StarterSubmissionLimit"),
inputType: new SingleLineStringInputType(new NumericValueValidator(0, 100))
);
}
}
I am able to see these new features in the edit edition modal and I am able to select them, however the new features don't appear in the AbpFeatures table as having been assigned to the edition - is there something that I am missing here?
5 Answer(s)
-
0
Update: So my current understanding that the features will only show up in the AbpFeatures table when a non-default value is specified. Using the FeatureChecker.GetValueAsync functionality will return either the default value (presumably from the feature definition) or the non-default value from the database.
-
0
Hi Maliming
Here is the data in my AbpFeatures table:
Id CreationTime CreatorUserId Discriminator Name Value EditionId TenantId 1 2018-03-16 14:38:16.4764368 NULL EditionFeatureSetting App.ChatFeature true 1 NULL 2 2018-03-16 14:38:16.5210188 NULL EditionFeatureSetting App.ChatFeature.TenantToTenant true 1 NULL 3 2018-03-16 14:38:16.5225230 NULL EditionFeatureSetting App.ChatFeature.TenantToHost true 1 NULL 4 2018-10-10 12:14:40.9736974 1 EditionFeatureSetting App.ChatFeature true 2 NULL 5 2018-10-10 12:14:40.9881633 1 EditionFeatureSetting App.ChatFeature.TenantToHost true 2 NULL 6 2018-10-10 12:14:40.9917917 1 EditionFeatureSetting App.ChatFeature.TenantToTenant true 2 NULL 7 2018-10-10 12:14:40.9993621 1 EditionFeatureSetting App.TestCheckFeature2 false 2 NULL 9 2018-10-10 13:03:44.7374498 1 EditionFeatureSetting App.SubmissionLimitAmount 500 2 NULL
The new custom feature, SubmissionLimitAmount, only shows up for Edition 2, but not for Edition 1, even though they both now have that feature. Edition 2 has a non-default value set for its SubmissionLimitAmount, while Edition 1 has the default value, and this would be why one shows up and the other doesn't?
-
0
this is intentional. refer:https://github.com/aspnetzero/aspnet-zero-core/issues/482
-
0
Hi Maliming,
Thank you for your response and help.
As noted by Hikalkan in the Git Link:
Only default values are not saved (because they are default and hard-coded in your code) and when you get a feature's value, this default value is returned.
It would be good if this was stated in the documention for features: Feature Management
-
0
I think it would be helpful to explain it in the documentation.