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
{
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<FeatureListDto> GetHostAsync();
Task UpdateHostAsync(UpdateFeaturesDto input);
Task UpdateAsync([NotNull] string providerName, string providerKey, 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;
}
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);
var featureDefinitions = FeatureDefinitionManager.GetAll();
var features = new List<FeatureDto>();
if (providerName == HostFeatureValueProvider.ProviderName)
{
featureDefinitions = featureDefinitions.Where(x => x.IsAvailableToHost).ToList();
}
foreach (var featureDefinition in featureDefinitions)
{
var feature = await FeatureManager.GetOrNullWithProviderAsync(featureDefinition.Name, providerName, providerKey);
@ -56,58 +61,19 @@ namespace Volo.Abp.FeatureManagement
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);
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)
{
var featureDefinition = FeatureDefinitionManager.GetOrNull(feature.Name);
if (featureDefinition == null || !featureDefinition.IsAvailableToHost)
if (featureDefinition == null || (providerName == HostFeatureValueProvider.ProviderName && !featureDefinition.IsAvailableToHost))
{
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<HostFeatureManagementProvider>();
options.ProviderPolicies[HostFeatureValueProvider.ProviderName] = "FeatureManagement.ManageHostFeatures";
options.Providers.Add<EditionFeatureManagementProvider>();
//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);
}
[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)]
public string ProviderName { get; set; }
[Required]
[HiddenInput]
[BindProperty(SupportsGet = true)]
public string ProviderKey { get; set; }
@ -37,14 +36,7 @@ namespace Volo.Abp.FeatureManagement.Web.Pages.FeatureManagement
public virtual async Task OnGetAsync()
{
if (ProviderName == HostFeatureValueProvider.ProviderName)
{
FeatureListDto = await FeatureAppService.GetHostAsync();
}
else
{
FeatureListDto = await FeatureAppService.GetAsync(ProviderName, ProviderKey);
}
FeatureListDto = await FeatureAppService.GetAsync(ProviderName, ProviderKey);
}
public virtual async Task<IActionResult> OnPostAsync()
@ -58,14 +50,7 @@ namespace Volo.Abp.FeatureManagement.Web.Pages.FeatureManagement
}).ToList()
};
if (ProviderName == HostFeatureValueProvider.ProviderName)
{
await FeatureAppService.UpdateHostAsync(features);
}
else
{
await FeatureAppService.UpdateAsync(ProviderName, ProviderKey, features);
}
await FeatureAppService.UpdateAsync(ProviderName, ProviderKey, features);
return NoContent();
}
@ -88,8 +73,6 @@ namespace Volo.Abp.FeatureManagement.Web.Pages.FeatureManagement
public string Value { get; set; }
public string ProviderName { get; set; }
public bool BoolValue { 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) {
e.preventDefault();
_featuresModal.open({
providerName: 'H',
providerKey: 'H'
providerName: 'H'
});
});
});

Loading…
Cancel
Save