Browse Source

Update application dtos.

pull/13881/head
maliming 4 years ago
parent
commit
56a150a65f
No known key found for this signature in database GPG Key ID: 96224957E51C89E
  1. 8
      modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureDto.cs
  2. 4
      modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureGroupDto.cs
  3. 72
      modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo/Abp/FeatureManagement/FeatureAppService.cs

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

@ -8,12 +8,20 @@ public class FeatureDto
public string DisplayName { get; set; }
public string DisplayNameKey { get; set; }
public string DisplayNameResource { get; set; }
public string Value { get; set; }
public FeatureProviderDto Provider { get; set; }
public string Description { get; set; }
public string DescriptionKey { get; set; }
public string DescriptionResource { get; set; }
public IStringValueType ValueType { get; set; }
public int Depth { get; set; }

4
modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo/Abp/FeatureManagement/FeatureGroupDto.cs

@ -8,6 +8,10 @@ public class FeatureGroupDto
public string DisplayName { get; set; }
public string DisplayNameKey { get; set; }
public string DisplayNameResource { get; set; }
public List<FeatureDto> Features { get; set; }
public string GetNormalizedGroupName()

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

@ -5,8 +5,8 @@ using System.Threading.Tasks;
using JetBrains.Annotations;
using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.Options;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Features;
using Volo.Abp.Localization;
namespace Volo.Abp.FeatureManagement;
@ -37,12 +37,7 @@ public class FeatureAppService : FeatureManagementAppServiceBase, IFeatureAppSer
foreach (var group in await FeatureDefinitionManager.GetGroupsAsync())
{
var groupDto = new FeatureGroupDto
{
Name = group.Name,
DisplayName = group.DisplayName.Localize(StringLocalizerFactory),
Features = new List<FeatureDto>()
};
var groupDto = CreateFeatureGroupDto(group);
foreach (var featureDefinition in group.GetFeaturesWithChildren())
{
@ -55,20 +50,7 @@ public class FeatureAppService : FeatureManagementAppServiceBase, IFeatureAppSer
}
var feature = await FeatureManager.GetOrNullWithProviderAsync(featureDefinition.Name, providerName, providerKey);
groupDto.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
}
});
groupDto.Features.Add(CreateFeatureDto(feature, featureDefinition));
}
SetFeatureDepth(groupDto.Features, providerName, providerKey);
@ -82,6 +64,54 @@ public class FeatureAppService : FeatureManagementAppServiceBase, IFeatureAppSer
return result;
}
private FeatureGroupDto CreateFeatureGroupDto(FeatureGroupDefinition groupDefinition)
{
var localizableDisplayName = groupDefinition.DisplayName as LocalizableString;
return new FeatureGroupDto
{
Name = groupDefinition.Name,
DisplayName = groupDefinition.DisplayName.Localize(StringLocalizerFactory),
DisplayNameKey = localizableDisplayName?.Name,
DisplayNameResource = localizableDisplayName?.ResourceType != null
? LocalizationResourceNameAttribute.GetName(localizableDisplayName.ResourceType)
: null,
Features = new List<FeatureDto>()
};
}
private FeatureDto CreateFeatureDto(FeatureNameValueWithGrantedProvider featureNameValueWithGrantedProvider, FeatureDefinition featureDefinition)
{
var localizableDisplayName = featureDefinition.DisplayName as LocalizableString;
var localizableDescription = featureDefinition.Description as LocalizableString;
return new FeatureDto
{
Name = featureDefinition.Name,
DisplayName = featureDefinition.DisplayName.Localize(StringLocalizerFactory),
DisplayNameKey = localizableDisplayName?.Name,
DisplayNameResource = localizableDisplayName?.ResourceType != null
? LocalizationResourceNameAttribute.GetName(localizableDisplayName.ResourceType)
: null,
Description = featureDefinition.Description.Localize(StringLocalizerFactory),
DescriptionKey = localizableDescription?.Name,
DescriptionResource = localizableDescription?.ResourceType != null
? LocalizationResourceNameAttribute.GetName(localizableDescription.ResourceType)
: null,
ValueType = featureDefinition.ValueType,
ParentName = featureDefinition.Parent?.Name,
Value = featureNameValueWithGrantedProvider.Value,
Provider = new FeatureProviderDto
{
Name = featureNameValueWithGrantedProvider.Provider?.Name,
Key = featureNameValueWithGrantedProvider.Provider?.Key
}
};
}
public virtual async Task UpdateAsync([NotNull] string providerName, string providerKey, UpdateFeaturesDto input)
{
await CheckProviderPolicy(providerName, providerKey);

Loading…
Cancel
Save