Browse Source

Refactor

pull/5259/head
maliming 6 years ago
parent
commit
40978470c6
  1. 8
      modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/IFeatureAppService.cs
  2. 52
      modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs
  3. 1
      modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs
  4. 14
      modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo/Abp/FeatureManagement/FeaturesController.cs
  5. 21
      modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs
  6. 3
      modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js

8
modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/IFeatureAppService.cs

@ -6,12 +6,8 @@ namespace Volo.Abp.FeatureManagement
{ {
public interface IFeatureAppService : IApplicationService public interface IFeatureAppService : IApplicationService
{ {
Task<FeatureListDto> GetAsync([NotNull] string providerName, [NotNull] string providerKey); Task<FeatureListDto> GetAsync([NotNull] string providerName, string providerKey);
Task UpdateAsync([NotNull] string providerName, [NotNull] string providerKey, UpdateFeaturesDto input); Task UpdateAsync([NotNull] string providerName, string providerKey, UpdateFeaturesDto input);
Task<FeatureListDto> GetHostAsync();
Task UpdateHostAsync(UpdateFeaturesDto input);
} }
} }

52
modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs

@ -25,13 +25,18 @@ namespace Volo.Abp.FeatureManagement
Options = options.Value; Options = options.Value;
} }
public virtual async Task<FeatureListDto> GetAsync([NotNull] string providerName, [NotNull] string providerKey) public virtual async Task<FeatureListDto> GetAsync([NotNull] string providerName, string providerKey)
{ {
await CheckProviderPolicy(providerName); await CheckProviderPolicy(providerName);
var featureDefinitions = FeatureDefinitionManager.GetAll(); var featureDefinitions = FeatureDefinitionManager.GetAll();
var features = new List<FeatureDto>(); var features = new List<FeatureDto>();
if (providerName == HostFeatureValueProvider.ProviderName)
{
featureDefinitions = featureDefinitions.Where(x => x.IsAvailableToHost).ToList();
}
foreach (var featureDefinition in featureDefinitions) foreach (var featureDefinition in featureDefinitions)
{ {
var feature = await FeatureManager.GetOrNullWithProviderAsync(featureDefinition.Name, providerName, providerKey); var feature = await FeatureManager.GetOrNullWithProviderAsync(featureDefinition.Name, providerName, providerKey);
@ -56,58 +61,19 @@ namespace Volo.Abp.FeatureManagement
return new FeatureListDto { Features = features }; return new FeatureListDto { Features = features };
} }
public virtual async Task UpdateAsync([NotNull] string providerName, [NotNull] string providerKey, UpdateFeaturesDto input) public virtual async Task UpdateAsync([NotNull] string providerName, string providerKey, UpdateFeaturesDto input)
{ {
await CheckProviderPolicy(providerName); await CheckProviderPolicy(providerName);
foreach (var feature in input.Features)
{
await FeatureManager.SetAsync(feature.Name, feature.Value, providerName, providerKey);
}
}
[Authorize(FeatureManagementPermissions.ManageHostFeatures)]
public async Task<FeatureListDto> GetHostAsync()
{
var featureDefinitions = FeatureDefinitionManager.GetAll().Where(x => x.IsAvailableToHost);
var features = new List<FeatureDto>();
foreach (var featureDefinition in featureDefinitions)
{
var feature = await FeatureManager.GetOrNullWithProviderAsync(featureDefinition.Name, HostFeatureValueProvider.ProviderName, null);
features.Add(new FeatureDto
{
Name = featureDefinition.Name,
DisplayName = featureDefinition.DisplayName?.Localize(StringLocalizerFactory),
ValueType = featureDefinition.ValueType,
Description = featureDefinition.Description?.Localize(StringLocalizerFactory),
ParentName = featureDefinition.Parent?.Name,
Value = feature.Value,
Provider = new FeatureProviderDto
{
Name = feature.Provider?.Name,
Key = feature.Provider?.Key
}
});
}
SetFeatureDepth(features, HostFeatureValueProvider.ProviderName, null);
return new FeatureListDto { Features = features };
}
[Authorize(FeatureManagementPermissions.ManageHostFeatures)]
public async Task UpdateHostAsync(UpdateFeaturesDto input)
{
foreach (var feature in input.Features) foreach (var feature in input.Features)
{ {
var featureDefinition = FeatureDefinitionManager.GetOrNull(feature.Name); var featureDefinition = FeatureDefinitionManager.GetOrNull(feature.Name);
if (featureDefinition == null || !featureDefinition.IsAvailableToHost) if (featureDefinition == null || (providerName == HostFeatureValueProvider.ProviderName && !featureDefinition.IsAvailableToHost))
{ {
throw new UserFriendlyException(L["FeatureNotAvailable"]); throw new UserFriendlyException(L["FeatureNotAvailable"]);
} }
await FeatureManager.SetAsync(feature.Name, feature.Value, HostFeatureValueProvider.ProviderName, null); await FeatureManager.SetAsync(feature.Name, feature.Value, providerName, providerKey);
} }
} }

1
modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs

@ -19,6 +19,7 @@ namespace Volo.Abp.FeatureManagement
{ {
options.Providers.Add<DefaultValueFeatureManagementProvider>(); options.Providers.Add<DefaultValueFeatureManagementProvider>();
options.Providers.Add<HostFeatureManagementProvider>(); options.Providers.Add<HostFeatureManagementProvider>();
options.ProviderPolicies[HostFeatureValueProvider.ProviderName] = "FeatureManagement.ManageHostFeatures";
options.Providers.Add<EditionFeatureManagementProvider>(); options.Providers.Add<EditionFeatureManagementProvider>();
//TODO: Should be moved to the Tenant Management module //TODO: Should be moved to the Tenant Management module

14
modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo/Abp/FeatureManagement/FeaturesController.cs

@ -27,19 +27,5 @@ namespace Volo.Abp.FeatureManagement
{ {
return FeatureAppService.UpdateAsync(providerName, providerKey, input); return FeatureAppService.UpdateAsync(providerName, providerKey, input);
} }
[HttpGet]
[Route("host")]
public virtual Task<FeatureListDto> GetHostAsync()
{
return FeatureAppService.GetHostAsync();
}
[HttpPut]
[Route("host")]
public virtual Task UpdateHostAsync(UpdateFeaturesDto input)
{
return FeatureAppService.UpdateHostAsync(input);
}
} }
} }

21
modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Pages/FeatureManagement/FeatureManagementModal.cshtml.cs

@ -16,7 +16,6 @@ namespace Volo.Abp.FeatureManagement.Web.Pages.FeatureManagement
[BindProperty(SupportsGet = true)] [BindProperty(SupportsGet = true)]
public string ProviderName { get; set; } public string ProviderName { get; set; }
[Required]
[HiddenInput] [HiddenInput]
[BindProperty(SupportsGet = true)] [BindProperty(SupportsGet = true)]
public string ProviderKey { get; set; } public string ProviderKey { get; set; }
@ -37,14 +36,7 @@ namespace Volo.Abp.FeatureManagement.Web.Pages.FeatureManagement
public virtual async Task OnGetAsync() public virtual async Task OnGetAsync()
{ {
if (ProviderName == HostFeatureValueProvider.ProviderName) FeatureListDto = await FeatureAppService.GetAsync(ProviderName, ProviderKey);
{
FeatureListDto = await FeatureAppService.GetHostAsync();
}
else
{
FeatureListDto = await FeatureAppService.GetAsync(ProviderName, ProviderKey);
}
} }
public virtual async Task<IActionResult> OnPostAsync() public virtual async Task<IActionResult> OnPostAsync()
@ -58,14 +50,7 @@ namespace Volo.Abp.FeatureManagement.Web.Pages.FeatureManagement
}).ToList() }).ToList()
}; };
if (ProviderName == HostFeatureValueProvider.ProviderName) await FeatureAppService.UpdateAsync(ProviderName, ProviderKey, features);
{
await FeatureAppService.UpdateHostAsync(features);
}
else
{
await FeatureAppService.UpdateAsync(ProviderName, ProviderKey, features);
}
return NoContent(); return NoContent();
} }
@ -88,8 +73,6 @@ namespace Volo.Abp.FeatureManagement.Web.Pages.FeatureManagement
public string Value { get; set; } public string Value { get; set; }
public string ProviderName { get; set; }
public bool BoolValue { get; set; } public bool BoolValue { get; set; }
public string Type { get; set; } public string Type { get; set; }

3
modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js

@ -132,8 +132,7 @@
_$wrapper.find('button[name=ManageHostFeatures]').click(function (e) { _$wrapper.find('button[name=ManageHostFeatures]').click(function (e) {
e.preventDefault(); e.preventDefault();
_featuresModal.open({ _featuresModal.open({
providerName: 'H', providerName: 'H'
providerKey: 'H'
}); });
}); });
}); });

Loading…
Cancel
Save