Browse Source

Only `Deserialize` if `value` not `null`.

pull/21206/head
maliming 2 years ago
parent
commit
40e3e315bc
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 6
      modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/DynamicFeatureDefinitionStoreInMemoryCache.cs
  2. 26
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/DynamicPermissionDefinitionStoreInMemoryCache.cs

6
modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/DynamicFeatureDefinitionStoreInMemoryCache.cs

@ -48,7 +48,7 @@ public class DynamicFeatureDefinitionStoreInMemoryCache:
{ {
var featureGroup = context.AddGroup( var featureGroup = context.AddGroup(
featureGroupRecord.Name, featureGroupRecord.Name,
LocalizableStringSerializer.Deserialize(featureGroupRecord.DisplayName) featureGroupRecord.DisplayName != null ? LocalizableStringSerializer.Deserialize(featureGroupRecord.DisplayName) : null
); );
FeatureGroupDefinitions[featureGroup.Name] = featureGroup; FeatureGroupDefinitions[featureGroup.Name] = featureGroup;
@ -92,8 +92,8 @@ public class DynamicFeatureDefinitionStoreInMemoryCache:
var feature = featureContainer.CreateChildFeature( var feature = featureContainer.CreateChildFeature(
featureRecord.Name, featureRecord.Name,
featureRecord.DefaultValue, featureRecord.DefaultValue,
LocalizableStringSerializer.Deserialize(featureRecord.DisplayName), featureRecord.DisplayName != null ? LocalizableStringSerializer.Deserialize(featureRecord.DisplayName) : null,
LocalizableStringSerializer.Deserialize(featureRecord.Description), featureRecord.Description != null ? LocalizableStringSerializer.Deserialize(featureRecord.Description) : null,
StateCheckerSerializer.Deserialize(featureRecord.ValueType), StateCheckerSerializer.Deserialize(featureRecord.ValueType),
featureRecord.IsVisibleToClients, featureRecord.IsVisibleToClients,
featureRecord.IsAvailableToHost featureRecord.IsAvailableToHost

26
modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/DynamicPermissionDefinitionStoreInMemoryCache.cs

@ -10,28 +10,28 @@ using Volo.Abp.SimpleStateChecking;
namespace Volo.Abp.PermissionManagement; namespace Volo.Abp.PermissionManagement;
public class DynamicPermissionDefinitionStoreInMemoryCache : public class DynamicPermissionDefinitionStoreInMemoryCache :
IDynamicPermissionDefinitionStoreInMemoryCache, IDynamicPermissionDefinitionStoreInMemoryCache,
ISingletonDependency ISingletonDependency
{ {
public string CacheStamp { get; set; } public string CacheStamp { get; set; }
protected IDictionary<string, PermissionGroupDefinition> PermissionGroupDefinitions { get; } protected IDictionary<string, PermissionGroupDefinition> PermissionGroupDefinitions { get; }
protected IDictionary<string, PermissionDefinition> PermissionDefinitions { get; } protected IDictionary<string, PermissionDefinition> PermissionDefinitions { get; }
protected ISimpleStateCheckerSerializer StateCheckerSerializer { get; } protected ISimpleStateCheckerSerializer StateCheckerSerializer { get; }
protected ILocalizableStringSerializer LocalizableStringSerializer { get; } protected ILocalizableStringSerializer LocalizableStringSerializer { get; }
public SemaphoreSlim SyncSemaphore { get; } = new(1, 1); public SemaphoreSlim SyncSemaphore { get; } = new(1, 1);
public DateTime? LastCheckTime { get; set; } public DateTime? LastCheckTime { get; set; }
public DynamicPermissionDefinitionStoreInMemoryCache( public DynamicPermissionDefinitionStoreInMemoryCache(
ISimpleStateCheckerSerializer stateCheckerSerializer, ISimpleStateCheckerSerializer stateCheckerSerializer,
ILocalizableStringSerializer localizableStringSerializer) ILocalizableStringSerializer localizableStringSerializer)
{ {
StateCheckerSerializer = stateCheckerSerializer; StateCheckerSerializer = stateCheckerSerializer;
LocalizableStringSerializer = localizableStringSerializer; LocalizableStringSerializer = localizableStringSerializer;
PermissionGroupDefinitions = new Dictionary<string, PermissionGroupDefinition>(); PermissionGroupDefinitions = new Dictionary<string, PermissionGroupDefinition>();
PermissionDefinitions = new Dictionary<string, PermissionDefinition>(); PermissionDefinitions = new Dictionary<string, PermissionDefinition>();
} }
@ -42,16 +42,16 @@ public class DynamicPermissionDefinitionStoreInMemoryCache :
{ {
PermissionGroupDefinitions.Clear(); PermissionGroupDefinitions.Clear();
PermissionDefinitions.Clear(); PermissionDefinitions.Clear();
var context = new PermissionDefinitionContext(null); var context = new PermissionDefinitionContext(null);
foreach (var permissionGroupRecord in permissionGroupRecords) foreach (var permissionGroupRecord in permissionGroupRecords)
{ {
var permissionGroup = context.AddGroup( var permissionGroup = context.AddGroup(
permissionGroupRecord.Name, permissionGroupRecord.Name,
LocalizableStringSerializer.Deserialize(permissionGroupRecord.DisplayName) permissionGroupRecord.DisplayName != null ? LocalizableStringSerializer.Deserialize(permissionGroupRecord.DisplayName) : null
); );
PermissionGroupDefinitions[permissionGroup.Name] = permissionGroup; PermissionGroupDefinitions[permissionGroup.Name] = permissionGroup;
foreach (var property in permissionGroupRecord.ExtraProperties) foreach (var property in permissionGroupRecord.ExtraProperties)
@ -61,7 +61,7 @@ public class DynamicPermissionDefinitionStoreInMemoryCache :
var permissionRecordsInThisGroup = permissionRecords var permissionRecordsInThisGroup = permissionRecords
.Where(p => p.GroupName == permissionGroup.Name); .Where(p => p.GroupName == permissionGroup.Name);
foreach (var permissionRecord in permissionRecordsInThisGroup.Where(x => x.ParentName == null)) foreach (var permissionRecord in permissionRecordsInThisGroup.Where(x => x.ParentName == null))
{ {
AddPermissionRecursively(permissionGroup, permissionRecord, permissionRecords); AddPermissionRecursively(permissionGroup, permissionRecord, permissionRecords);
@ -92,11 +92,11 @@ public class DynamicPermissionDefinitionStoreInMemoryCache :
{ {
var permission = permissionContainer.AddPermission( var permission = permissionContainer.AddPermission(
permissionRecord.Name, permissionRecord.Name,
LocalizableStringSerializer.Deserialize(permissionRecord.DisplayName), permissionRecord.DisplayName != null ? LocalizableStringSerializer.Deserialize(permissionRecord.DisplayName) : null,
permissionRecord.MultiTenancySide, permissionRecord.MultiTenancySide,
permissionRecord.IsEnabled permissionRecord.IsEnabled
); );
PermissionDefinitions[permission.Name] = permission; PermissionDefinitions[permission.Name] = permission;
if (!permissionRecord.Providers.IsNullOrWhiteSpace()) if (!permissionRecord.Providers.IsNullOrWhiteSpace())
@ -124,4 +124,4 @@ public class DynamicPermissionDefinitionStoreInMemoryCache :
AddPermissionRecursively(permission, subPermission, allPermissionRecords); AddPermissionRecursively(permission, subPermission, allPermissionRecords);
} }
} }
} }

Loading…
Cancel
Save