Browse Source

Merge pull request #6551 from abpframework/liangshiwei/patch-1

Check ValueType and Validator is null
pull/6570/head
maliming 6 years ago
committed by GitHub
parent
commit
5cbeb7311a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 36
      modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs
  2. 2
      modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs

36
modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Components/FeatureManagementModal.razor.cs

@ -16,26 +16,26 @@ namespace Volo.Abp.FeatureManagement.Blazor.Components
public partial class FeatureManagementModal public partial class FeatureManagementModal
{ {
[Inject] protected IFeatureAppService FeatureAppService { get; set; } [Inject] protected IFeatureAppService FeatureAppService { get; set; }
[Inject] protected IUiMessageService UiMessageService { get; set; } [Inject] protected IUiMessageService UiMessageService { get; set; }
[Inject] protected IStringLocalizerFactory HtmlLocalizerFactory { get; set; } [Inject] protected IStringLocalizerFactory HtmlLocalizerFactory { get; set; }
[Inject] protected IOptions<AbpLocalizationOptions> LocalizationOptions { get; set; } [Inject] protected IOptions<AbpLocalizationOptions> LocalizationOptions { get; set; }
protected Modal Modal; protected Modal Modal;
protected string ProviderName; protected string ProviderName;
protected string ProviderKey; protected string ProviderKey;
protected string SelectedTabName; protected string SelectedTabName;
protected List<FeatureGroupDto> Groups { get; set; } protected List<FeatureGroupDto> Groups { get; set; }
protected Dictionary<string, bool> ToggleValues; protected Dictionary<string, bool> ToggleValues;
protected Dictionary<string, string> SelectionStringValues; protected Dictionary<string, string> SelectionStringValues;
public virtual async Task OpenAsync([NotNull]string providerName, string providerKey = null) public virtual async Task OpenAsync([NotNull]string providerName, string providerKey = null)
{ {
ProviderName = providerName; ProviderName = providerName;
@ -43,11 +43,11 @@ namespace Volo.Abp.FeatureManagement.Blazor.Components
ToggleValues = new Dictionary<string, bool>(); ToggleValues = new Dictionary<string, bool>();
SelectionStringValues = new Dictionary<string, string>(); SelectionStringValues = new Dictionary<string, string>();
Groups = (await FeatureAppService.GetAsync(ProviderName, ProviderKey)).Groups; Groups = (await FeatureAppService.GetAsync(ProviderName, ProviderKey)).Groups;
SelectedTabName = GetNormalizedGroupName(Groups.First().Name); SelectedTabName = GetNormalizedGroupName(Groups.First().Name);
foreach (var featureGroupDto in Groups) foreach (var featureGroupDto in Groups)
{ {
foreach (var featureDto in featureGroupDto.Features) foreach (var featureDto in featureGroupDto.Features)
@ -66,13 +66,13 @@ namespace Volo.Abp.FeatureManagement.Blazor.Components
Modal.Show(); Modal.Show();
} }
public virtual Task CloseModal() public virtual Task CloseModal()
{ {
Modal.Hide(); Modal.Hide();
return Task.CompletedTask; return Task.CompletedTask;
} }
protected virtual async Task SaveAsync() protected virtual async Task SaveAsync()
{ {
var features = new UpdateFeaturesDto var features = new UpdateFeaturesDto
@ -80,21 +80,21 @@ namespace Volo.Abp.FeatureManagement.Blazor.Components
Features = Groups.SelectMany(g => g.Features).Select(f => new UpdateFeatureDto Features = Groups.SelectMany(g => g.Features).Select(f => new UpdateFeatureDto
{ {
Name = f.Name, Name = f.Name,
Value = f.ValueType is ToggleStringValueType ? ToggleValues[f.Name].ToString() : Value = f.ValueType is ToggleStringValueType ? ToggleValues[f.Name].ToString() :
f.ValueType is SelectionStringValueType ? SelectionStringValues[f.Name] : f.Value f.ValueType is SelectionStringValueType ? SelectionStringValues[f.Name] : f.Value
}).ToList() }).ToList()
}; };
await FeatureAppService.UpdateAsync(ProviderName, ProviderKey, features); await FeatureAppService.UpdateAsync(ProviderName, ProviderKey, features);
Modal.Hide(); Modal.Hide();
} }
protected virtual string GetNormalizedGroupName(string name) protected virtual string GetNormalizedGroupName(string name)
{ {
return "FeatureGroup_" + name.Replace(".", "_"); return "FeatureGroup_" + name.Replace(".", "_");
} }
protected virtual bool IsDisabled(string providerName) protected virtual bool IsDisabled(string providerName)
{ {
return providerName != ProviderName && providerName != DefaultValueFeatureValueProvider.ProviderName; return providerName != ProviderName && providerName != DefaultValueFeatureValueProvider.ProviderName;
@ -102,7 +102,7 @@ namespace Volo.Abp.FeatureManagement.Blazor.Components
protected virtual async Task OnFeatureValueChangedAsync(string value, FeatureDto feature) protected virtual async Task OnFeatureValueChangedAsync(string value, FeatureDto feature)
{ {
if (feature.ValueType.Validator.IsValid(value)) if (feature?.ValueType?.Validator.IsValid(value) == true)
{ {
feature.Value = value; feature.Value = value;
} }
@ -116,11 +116,11 @@ namespace Volo.Abp.FeatureManagement.Blazor.Components
{ {
SelectionStringValues[featureName] = value; SelectionStringValues[featureName] = value;
} }
protected virtual IStringLocalizer CreateStringLocalizer(string resourceName) protected virtual IStringLocalizer CreateStringLocalizer(string resourceName)
{ {
var resource = LocalizationOptions.Value.Resources.Values.FirstOrDefault(x => x.ResourceName == resourceName); var resource = LocalizationOptions.Value.Resources.Values.FirstOrDefault(x => x.ResourceName == resourceName);
return HtmlLocalizerFactory.Create(resource != null ? resource.ResourceType : LocalizationOptions.Value.DefaultResourceType); return HtmlLocalizerFactory.Create(resource != null ? resource.ResourceType : LocalizationOptions.Value.DefaultResourceType);
} }
} }
} }

2
modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs

@ -132,7 +132,7 @@ namespace Volo.Abp.FeatureManagement
var feature = FeatureDefinitionManager.Get(name); var feature = FeatureDefinitionManager.Get(name);
if (!feature.ValueType.Validator.IsValid(value)) if (feature?.ValueType?.Validator.IsValid(value) == false)
{ {
throw new FeatureValueInvalidException(feature.DisplayName.Localize(StringLocalizerFactory)); throw new FeatureValueInvalidException(feature.DisplayName.Localize(StringLocalizerFactory));
} }

Loading…
Cancel
Save