public async Task Complex_Test_Scenario()
        {
            var standardEdition = await CreateEditionAsync("Standard");

            var defaultTenant = GetDefaultTenant();

            defaultTenant.EditionId = standardEdition.Id;
            await _tenantManager.UpdateAsync(defaultTenant);

            AbpSession.TenantId = defaultTenant.Id;

            //No value initially
            (await _editionManager.GetFeatureValueOrNullAsync(standardEdition.Id, AppFeatureProvider.MyBoolFeature)).ShouldBeNull();
            (await _editionManager.GetFeatureValueOrNullAsync(standardEdition.Id, AppFeatureProvider.MyNumericFeature)).ShouldBeNull();
            (await _tenantManager.GetFeatureValueOrNullAsync(defaultTenant.Id, AppFeatureProvider.MyBoolFeature)).ShouldBeNull();
            (await _tenantManager.GetFeatureValueOrNullAsync(defaultTenant.Id, AppFeatureProvider.MyNumericFeature)).ShouldBeNull();

            //Should get default values
            (await _featureChecker.IsEnabledAsync(AppFeatureProvider.MyBoolFeature)).ShouldBeFalse();
            (await _featureChecker.GetValueAsync(AppFeatureProvider.MyNumericFeature)).ShouldBe("42");

            //Set edition values
            await _editionManager.SetFeatureValueAsync(standardEdition.Id, AppFeatureProvider.MyBoolFeature, "true");

            await _editionManager.SetFeatureValueAsync(standardEdition.Id, AppFeatureProvider.MyNumericFeature, "43");

            //Should get new values for edition
            (await _editionManager.GetFeatureValueOrNullAsync(standardEdition.Id, AppFeatureProvider.MyNumericFeature)).ShouldBe("43");
            (await _editionManager.GetFeatureValueOrNullAsync(standardEdition.Id, AppFeatureProvider.MyBoolFeature)).ShouldBe("true");

            //Should get edition values for tenant
            (await _featureChecker.GetValueAsync(AppFeatureProvider.MyNumericFeature)).ShouldBe("43");
            (await _featureChecker.IsEnabledAsync(AppFeatureProvider.MyBoolFeature)).ShouldBeTrue();
        }
예제 #2
0
        private bool IsEnabledInTenant(int tenantId, string argChildName)
        {
            var feature = AsyncHelper.RunSync(() => _tenantManager.GetFeatureValueOrNullAsync(tenantId, argChildName));

            bool isBool;

            var boolVal = bool.TryParse(feature, out isBool);

            if (isBool)
            {
                return(boolVal);
            }

            return(feature != null);
        }