Open Source Web Application Framework for ASP.NET Core
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

214 lines
6.9 KiB

using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Features;
using Volo.Abp.Guids;
namespace Volo.Abp.FeatureManagement;
public class FeatureManagementTestDataBuilder : ITransientDependency
{
private readonly IFeatureValueRepository _featureValueRepository;
private readonly IGuidGenerator _guidGenerator;
private readonly FeatureManagementTestData _testData;
public FeatureManagementTestDataBuilder(
IGuidGenerator guidGenerator,
FeatureManagementTestData testData,
IFeatureValueRepository featureValueRepository)
{
_guidGenerator = guidGenerator;
_testData = testData;
_featureValueRepository = featureValueRepository;
}
public async Task BuildAsync()
{
// Tenant EmailSupport
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.EmailSupport,
false.ToString().ToLowerInvariant(),
TenantFeatureValueProvider.ProviderName,
TestEditionIds.TenantId.ToString()
)
);
// NextTenant EmailSupport
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.EmailSupport,
true.ToString().ToLowerInvariant(),
NextTenantFeatureManagementProvider.ProviderName,
TestEditionIds.TenantId.ToString()
)
);
#region "Regular" edition features
//SocialLogins
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.SocialLogins,
true.ToString().ToLowerInvariant(),
EditionFeatureValueProvider.ProviderName,
TestEditionIds.Regular.ToString()
)
);
//UserCount
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.UserCount,
"10",
EditionFeatureValueProvider.ProviderName,
TestEditionIds.Regular.ToString()
)
);
//ProjectCount
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.ProjectCount,
"1",
EditionFeatureValueProvider.ProviderName,
TestEditionIds.Regular.ToString()
)
);
#endregion
#region "Enterprise" edition features
//SocialLogins
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.SocialLogins,
true.ToString().ToLowerInvariant(),
EditionFeatureValueProvider.ProviderName,
TestEditionIds.Enterprise.ToString()
)
);
//EmailSupport
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.EmailSupport,
true.ToString().ToLowerInvariant(),
EditionFeatureValueProvider.ProviderName,
TestEditionIds.Enterprise.ToString()
)
);
//UserCount
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.UserCount,
"20",
EditionFeatureValueProvider.ProviderName,
TestEditionIds.Enterprise.ToString()
)
);
//ProjectCount
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.ProjectCount,
"3",
EditionFeatureValueProvider.ProviderName,
TestEditionIds.Enterprise.ToString()
)
);
//BackupCount
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.BackupCount,
"5",
EditionFeatureValueProvider.ProviderName,
TestEditionIds.Enterprise.ToString()
)
);
#endregion
#region "Ultimate" edition features
//SocialLogins
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.SocialLogins,
true.ToString().ToLowerInvariant(),
EditionFeatureValueProvider.ProviderName,
TestEditionIds.Ultimate.ToString()
)
);
//EmailSupport
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.EmailSupport,
true.ToString().ToLowerInvariant(),
EditionFeatureValueProvider.ProviderName,
TestEditionIds.Ultimate.ToString()
)
);
//EmailSupport
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.DailyAnalysis,
true.ToString().ToLowerInvariant(),
EditionFeatureValueProvider.ProviderName,
TestEditionIds.Ultimate.ToString()
)
);
//UserCount
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.UserCount,
"100",
EditionFeatureValueProvider.ProviderName,
TestEditionIds.Ultimate.ToString()
)
);
//ProjectCount
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.ProjectCount,
"10",
EditionFeatureValueProvider.ProviderName,
TestEditionIds.Ultimate.ToString()
)
);
//BackupCount
await _featureValueRepository.InsertAsync(
new FeatureValue(
_guidGenerator.Create(),
TestFeatureDefinitionProvider.BackupCount,
"10",
EditionFeatureValueProvider.ProviderName,
TestEditionIds.Ultimate.ToString()
)
);
#endregion
}
}