From 7860222e04f387b299bbb49f918daba47b31967c Mon Sep 17 00:00:00 2001 From: Mohammad Sadeq Azarkaman <35189334+mazarkaman@users.noreply.github.com> Date: Mon, 25 Nov 2024 14:58:39 +0330 Subject: [PATCH] Update PermissionDataSeeder.cs Refactor SeedAsync to use InsertManyAsync for batch permission grants - Replaced individual permission insertions with a batch insert method (InsertManyAsync) for improved performance and cleaner code. - Created a list of new PermissionGrant objects from grantedPermissions that do not already exist. - This change reduces the number of database calls and enhances efficiency when seeding permissions. --- .../PermissionManagement/PermissionDataSeeder.cs | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDataSeeder.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDataSeeder.cs index 4227819fa6..77d1724d02 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDataSeeder.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDataSeeder.cs @@ -35,19 +35,8 @@ public class PermissionDataSeeder : IPermissionDataSeeder, ITransientDependency { var names = grantedPermissions.ToArray(); var existsPermissionGrants = (await PermissionGrantRepository.GetListAsync(names, providerName, providerKey)).Select(x => x.Name).ToList(); - - foreach (var permissionName in names.Except(existsPermissionGrants)) - { - await PermissionGrantRepository.InsertAsync( - new PermissionGrant( - GuidGenerator.Create(), - permissionName, - providerName, - providerKey, - tenantId - ) - ); - } + var permissions = names.Except(existsPermissionGrants).Select(permissionName => new PermissionGrant(GuidGenerator.Create(), permissionName, providerName, providerKey, tenantId)).ToList(); + await PermissionGrantRepository.InsertManyAsync(permissions); } } }