diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManagementStore.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManagementStore.cs index 59a0085d4c..d61738afb2 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManagementStore.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManagementStore.cs @@ -42,12 +42,12 @@ public class FeatureManagementStore : IFeatureManagementStore, ITransientDepende if (featureValue == null) { featureValue = new FeatureValue(GuidGenerator.Create(), name, value, providerName, providerKey); - await FeatureValueRepository.InsertAsync(featureValue); + await FeatureValueRepository.InsertAsync(featureValue, true); } else { featureValue.Value = value; - await FeatureValueRepository.UpdateAsync(featureValue); + await FeatureValueRepository.UpdateAsync(featureValue, true); } await Cache.SetAsync(CalculateCacheKey(name, providerName, providerKey), new FeatureValueCacheItem(featureValue?.Value), considerUow: true); @@ -59,7 +59,7 @@ public class FeatureManagementStore : IFeatureManagementStore, ITransientDepende var featureValues = await FeatureValueRepository.FindAllAsync(name, providerName, providerKey); foreach (var featureValue in featureValues) { - await FeatureValueRepository.DeleteAsync(featureValue); + await FeatureValueRepository.DeleteAsync(featureValue, true); await Cache.RemoveAsync(CalculateCacheKey(name, providerName, providerKey), considerUow: true); } } diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo/Abp/FeatureManagement/FeatureManagementStore_Tests.cs b/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo/Abp/FeatureManagement/FeatureManagementStore_Tests.cs index 4174eb95b0..bec82eaada 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo/Abp/FeatureManagement/FeatureManagementStore_Tests.cs +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo/Abp/FeatureManagement/FeatureManagementStore_Tests.cs @@ -135,8 +135,6 @@ public abstract class FeatureManagementStore_Tests : FeatureMana EditionFeatureValueProvider.ProviderName, TestEditionIds.Regular.ToString()); - await uow.SaveChangesAsync(); - // Assert (await FeatureManagementStore.GetOrNullAsync(TestFeatureDefinitionProvider.SocialLogins, EditionFeatureValueProvider.ProviderName, diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementProvider.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementProvider.cs index b6dfc2e518..e853377ddb 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementProvider.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementProvider.cs @@ -70,15 +70,8 @@ public abstract class PermissionManagementProvider : IPermissionManagementProvid return; } - await PermissionGrantRepository.InsertAsync( - new PermissionGrant( - GuidGenerator.Create(), - name, - Name, - providerKey, - CurrentTenant.Id - ) - ); + permissionGrant = new PermissionGrant(GuidGenerator.Create(), name, Name, providerKey, CurrentTenant.Id); + await PermissionGrantRepository.InsertAsync(permissionGrant, true); } protected virtual async Task RevokeAsync(string name, string providerKey) @@ -89,6 +82,6 @@ public abstract class PermissionManagementProvider : IPermissionManagementProvid return; } - await PermissionGrantRepository.DeleteAsync(permissionGrant); + await PermissionGrantRepository.DeleteAsync(permissionGrant, true); } } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManager.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManager.cs index b664e5c92d..8eeea26a97 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManager.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManager.cs @@ -184,7 +184,7 @@ public class PermissionManager : IPermissionManager, ISingletonDependency } permissionGrant.ProviderKey = providerKey; - return await PermissionGrantRepository.UpdateAsync(permissionGrant); + return await PermissionGrantRepository.UpdateAsync(permissionGrant, true); } public virtual async Task DeleteAsync(string providerName, string providerKey) @@ -192,7 +192,7 @@ public class PermissionManager : IPermissionManager, ISingletonDependency var permissionGrants = await PermissionGrantRepository.GetListAsync(providerName, providerKey); foreach (var permissionGrant in permissionGrants) { - await PermissionGrantRepository.DeleteAsync(permissionGrant); + await PermissionGrantRepository.DeleteAsync(permissionGrant, true); } } diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionManager_Tests.cs b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionManager_Tests.cs index 3f2e9c7565..b851c0daa9 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionManager_Tests.cs +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionManager_Tests.cs @@ -134,7 +134,7 @@ public class PermissionManager_Tests : PermissionTestBase "Test", true); } - + [Fact] public async Task Set_Should_Throw_Exception_If_Provider_Not_Found() { @@ -146,7 +146,7 @@ public class PermissionManager_Tests : PermissionTestBase "Test", true); }); - + exception.Message.ShouldBe("Unknown permission management provider: UndefinedProvider"); } @@ -165,4 +165,20 @@ public class PermissionManager_Tests : PermissionTestBase await _permissionManager.UpdateProviderKeyAsync(permissionGrant, "NewProviderKey"); (await _permissionGrantRepository.FindAsync("MyPermission1", "Test", "NewProviderKey")).ShouldNotBeNull(); } + + [Fact] + public async Task DeleteAsync() + { + await _permissionGrantRepository.InsertAsync(new PermissionGrant( + Guid.NewGuid(), + "MyPermission1", + "Test", + "Test") + ); + var permissionGrant = await _permissionGrantRepository.FindAsync("MyPermission1", "Test", "Test"); + permissionGrant.ProviderKey.ShouldBe("Test"); + + await _permissionManager.DeleteAsync("Test","Test"); + (await _permissionGrantRepository.FindAsync("MyPermission1", "Test", "Test")).ShouldBeNull(); + } } diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementStore.cs b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementStore.cs index 4e892abded..7b1c6ad522 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementStore.cs +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo/Abp/SettingManagement/SettingManagementStore.cs @@ -41,12 +41,12 @@ public class SettingManagementStore : ISettingManagementStore, ITransientDepende if (setting == null) { setting = new Setting(GuidGenerator.Create(), name, value, providerName, providerKey); - await SettingRepository.InsertAsync(setting); + await SettingRepository.InsertAsync(setting, true); } else { setting.Value = value; - await SettingRepository.UpdateAsync(setting); + await SettingRepository.UpdateAsync(setting, true); } await Cache.SetAsync(CalculateCacheKey(name, providerName, providerKey), new SettingCacheItem(setting?.Value), considerUow: true); @@ -64,7 +64,7 @@ public class SettingManagementStore : ISettingManagementStore, ITransientDepende var setting = await SettingRepository.FindAsync(name, providerName, providerKey); if (setting != null) { - await SettingRepository.DeleteAsync(setting); + await SettingRepository.DeleteAsync(setting, true); await Cache.RemoveAsync(CalculateCacheKey(name, providerName, providerKey), considerUow: true); } } diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManagementStore_Tests.cs b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManagementStore_Tests.cs index 23acc4e718..7e375e2b42 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManagementStore_Tests.cs +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManagementStore_Tests.cs @@ -66,6 +66,14 @@ public class SettingManagementStore_Tests : SettingsTestBase var valueAfterSet = await _settingManagementStore.GetOrNullAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); valueAfterSet.ShouldBe("43"); + + await _settingManagementStore.DeleteAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); + + var values = await _settingManagementStore.GetListAsync(["MySetting1"], GlobalSettingValueProvider.ProviderName, null); + + var settingValue = values.FirstOrDefault(x => x.Name == "MySetting1"); + settingValue.ShouldNotBeNull(); + settingValue.Value.ShouldBeNull(); } }