diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/DynamicFeatureDefinitionStoreInMemoryCache.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/DynamicFeatureDefinitionStoreInMemoryCache.cs index cefa0b3ade..a64f21af64 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/DynamicFeatureDefinitionStoreInMemoryCache.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/DynamicFeatureDefinitionStoreInMemoryCache.cs @@ -48,7 +48,7 @@ public class DynamicFeatureDefinitionStoreInMemoryCache: { var featureGroup = context.AddGroup( featureGroupRecord.Name, - LocalizableStringSerializer.Deserialize(featureGroupRecord.DisplayName) + featureGroupRecord.DisplayName != null ? LocalizableStringSerializer.Deserialize(featureGroupRecord.DisplayName) : null ); FeatureGroupDefinitions[featureGroup.Name] = featureGroup; @@ -92,8 +92,8 @@ public class DynamicFeatureDefinitionStoreInMemoryCache: var feature = featureContainer.CreateChildFeature( featureRecord.Name, featureRecord.DefaultValue, - LocalizableStringSerializer.Deserialize(featureRecord.DisplayName), - LocalizableStringSerializer.Deserialize(featureRecord.Description), + featureRecord.DisplayName != null ? LocalizableStringSerializer.Deserialize(featureRecord.DisplayName) : null, + featureRecord.Description != null ? LocalizableStringSerializer.Deserialize(featureRecord.Description) : null, StateCheckerSerializer.Deserialize(featureRecord.ValueType), featureRecord.IsVisibleToClients, featureRecord.IsAvailableToHost diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/DynamicPermissionDefinitionStoreInMemoryCache.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/DynamicPermissionDefinitionStoreInMemoryCache.cs index 3b09c922dc..1040ea84a0 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/DynamicPermissionDefinitionStoreInMemoryCache.cs +++ b/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; -public class DynamicPermissionDefinitionStoreInMemoryCache : +public class DynamicPermissionDefinitionStoreInMemoryCache : IDynamicPermissionDefinitionStoreInMemoryCache, ISingletonDependency { public string CacheStamp { get; set; } - + protected IDictionary PermissionGroupDefinitions { get; } protected IDictionary PermissionDefinitions { get; } protected ISimpleStateCheckerSerializer StateCheckerSerializer { get; } protected ILocalizableStringSerializer LocalizableStringSerializer { get; } public SemaphoreSlim SyncSemaphore { get; } = new(1, 1); - + public DateTime? LastCheckTime { get; set; } public DynamicPermissionDefinitionStoreInMemoryCache( - ISimpleStateCheckerSerializer stateCheckerSerializer, + ISimpleStateCheckerSerializer stateCheckerSerializer, ILocalizableStringSerializer localizableStringSerializer) { StateCheckerSerializer = stateCheckerSerializer; LocalizableStringSerializer = localizableStringSerializer; - + PermissionGroupDefinitions = new Dictionary(); PermissionDefinitions = new Dictionary(); } @@ -42,16 +42,16 @@ public class DynamicPermissionDefinitionStoreInMemoryCache : { PermissionGroupDefinitions.Clear(); PermissionDefinitions.Clear(); - + var context = new PermissionDefinitionContext(null); - + foreach (var permissionGroupRecord in permissionGroupRecords) { var permissionGroup = context.AddGroup( permissionGroupRecord.Name, - LocalizableStringSerializer.Deserialize(permissionGroupRecord.DisplayName) + permissionGroupRecord.DisplayName != null ? LocalizableStringSerializer.Deserialize(permissionGroupRecord.DisplayName) : null ); - + PermissionGroupDefinitions[permissionGroup.Name] = permissionGroup; foreach (var property in permissionGroupRecord.ExtraProperties) @@ -61,7 +61,7 @@ public class DynamicPermissionDefinitionStoreInMemoryCache : var permissionRecordsInThisGroup = permissionRecords .Where(p => p.GroupName == permissionGroup.Name); - + foreach (var permissionRecord in permissionRecordsInThisGroup.Where(x => x.ParentName == null)) { AddPermissionRecursively(permissionGroup, permissionRecord, permissionRecords); @@ -92,11 +92,11 @@ public class DynamicPermissionDefinitionStoreInMemoryCache : { var permission = permissionContainer.AddPermission( permissionRecord.Name, - LocalizableStringSerializer.Deserialize(permissionRecord.DisplayName), + permissionRecord.DisplayName != null ? LocalizableStringSerializer.Deserialize(permissionRecord.DisplayName) : null, permissionRecord.MultiTenancySide, permissionRecord.IsEnabled ); - + PermissionDefinitions[permission.Name] = permission; if (!permissionRecord.Providers.IsNullOrWhiteSpace()) @@ -124,4 +124,4 @@ public class DynamicPermissionDefinitionStoreInMemoryCache : AddPermissionRecursively(permission, subPermission, allPermissionRecords); } } -} \ No newline at end of file +}