diff --git a/src/Core/AdminConsole/OrganizationFeatures/Organizations/InitPendingOrganizationCommand.cs b/src/Core/AdminConsole/OrganizationFeatures/Organizations/InitPendingOrganizationCommand.cs index 8f169a3862..0c2abea2e7 100644 --- a/src/Core/AdminConsole/OrganizationFeatures/Organizations/InitPendingOrganizationCommand.cs +++ b/src/Core/AdminConsole/OrganizationFeatures/Organizations/InitPendingOrganizationCommand.cs @@ -328,7 +328,7 @@ public class InitPendingOrganizationCommand : IInitPendingOrganizationCommand [ _organizationRepository.BuildUpdateOrganizationAction(org), _organizationUserRepository.BuildConfirmOrganizationUserAction(orgUser), - _userRepository.BuildVerifyUserEmailAction(request.User.Id), + _userRepository.BuildVerifyUserEmailAction(request.User), ]; if (!string.IsNullOrWhiteSpace(request.CollectionName)) diff --git a/src/Core/Repositories/IUserRepository.cs b/src/Core/Repositories/IUserRepository.cs index 740e76184b..ebeed39c83 100644 --- a/src/Core/Repositories/IUserRepository.cs +++ b/src/Core/Repositories/IUserRepository.cs @@ -97,9 +97,9 @@ public interface IUserRepository : IRepository /// /// Builds an action that verifies a user's email if not already verified. /// - /// The user ID to verify + /// The user entity to verify /// An action that can be executed within a transaction - OrganizationInitializationUpdateAction BuildVerifyUserEmailAction(Guid userId); + OrganizationInitializationUpdateAction BuildVerifyUserEmailAction(User user); } public delegate Task UpdateUserData(Microsoft.Data.SqlClient.SqlConnection? connection = null, diff --git a/src/Infrastructure.Dapper/Repositories/UserRepository.cs b/src/Infrastructure.Dapper/Repositories/UserRepository.cs index 3228c50a26..e2a3f680c3 100644 --- a/src/Infrastructure.Dapper/Repositories/UserRepository.cs +++ b/src/Infrastructure.Dapper/Repositories/UserRepository.cs @@ -549,16 +549,10 @@ public class UserRepository : Repository, IUserRepository } } - public OrganizationInitializationUpdateAction BuildVerifyUserEmailAction(Guid userId) + public OrganizationInitializationUpdateAction BuildVerifyUserEmailAction(User user) { return async (SqlConnection? connection, SqlTransaction? transaction, object? context) => { - var user = (await connection!.QueryAsync( - "[dbo].[User_ReadById]", - new { Id = userId }, - commandType: CommandType.StoredProcedure, - transaction: transaction)).SingleOrDefault(); - if (user != null && !user.EmailVerified) { user.EmailVerified = true; diff --git a/src/Infrastructure.EntityFramework/Repositories/UserRepository.cs b/src/Infrastructure.EntityFramework/Repositories/UserRepository.cs index 0693c5f4d2..80e244b2a6 100644 --- a/src/Infrastructure.EntityFramework/Repositories/UserRepository.cs +++ b/src/Infrastructure.EntityFramework/Repositories/UserRepository.cs @@ -576,17 +576,17 @@ public class UserRepository : Repository, IUserR } } - public OrganizationInitializationUpdateAction BuildVerifyUserEmailAction(Guid userId) + public OrganizationInitializationUpdateAction BuildVerifyUserEmailAction(Core.Entities.User user) { return async (SqlConnection? _, SqlTransaction? _, object? context) => { var dbContext = (DatabaseContext)context!; - var user = await dbContext.Users.FindAsync(userId); - if (user != null && !user.EmailVerified) + var efUser = await dbContext.Users.FindAsync(user.Id); + if (efUser != null && !efUser.EmailVerified) { - user.EmailVerified = true; - user.RevisionDate = DateTime.UtcNow; + efUser.EmailVerified = true; + efUser.RevisionDate = DateTime.UtcNow; await dbContext.SaveChangesAsync(); } diff --git a/test/Core.Test/AdminConsole/OrganizationFeatures/Organizations/InitPendingOrganizationCommandTests.cs b/test/Core.Test/AdminConsole/OrganizationFeatures/Organizations/InitPendingOrganizationCommandTests.cs index 5809aa8c05..078d8a56a0 100644 --- a/test/Core.Test/AdminConsole/OrganizationFeatures/Organizations/InitPendingOrganizationCommandTests.cs +++ b/test/Core.Test/AdminConsole/OrganizationFeatures/Organizations/InitPendingOrganizationCommandTests.cs @@ -615,7 +615,7 @@ public class InitPendingOrganizationCommandTests .Returns(callInfo => new OrganizationInitializationUpdateAction((conn, trans, ctx) => Task.CompletedTask)); sutProvider.GetDependency() - .BuildVerifyUserEmailAction(user.Id) + .BuildVerifyUserEmailAction(Arg.Any()) .Returns(new OrganizationInitializationUpdateAction((conn, trans, ctx) => Task.CompletedTask)); sutProvider.GetDependency() diff --git a/test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationRepositoryTests.cs b/test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationRepositoryTests.cs index 003ddcf166..df081b9bd5 100644 --- a/test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationRepositoryTests.cs +++ b/test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationRepositoryTests.cs @@ -320,7 +320,7 @@ public class OrganizationRepositoryTests { organizationRepository.BuildUpdateOrganizationAction(organization), organizationUserRepository.BuildConfirmOrganizationUserAction(organizationUser), - userRepository.BuildVerifyUserEmailAction(user.Id) + userRepository.BuildVerifyUserEmailAction(user) }; var collection = new Collection @@ -403,7 +403,7 @@ public class OrganizationRepositoryTests { organizationRepository.BuildUpdateOrganizationAction(organization), organizationUserRepository.BuildConfirmOrganizationUserAction(organizationUser), - userRepository.BuildVerifyUserEmailAction(user.Id) + userRepository.BuildVerifyUserEmailAction(user) }; // Execute all updates in single transaction @@ -453,7 +453,7 @@ public class OrganizationRepositoryTests { organizationRepository.BuildUpdateOrganizationAction(organization), organizationUserRepository.BuildConfirmOrganizationUserAction(organizationUser), - userRepository.BuildVerifyUserEmailAction(user.Id), + userRepository.BuildVerifyUserEmailAction(user), // Add a failing action to trigger rollback (Microsoft.Data.SqlClient.SqlConnection? _, Microsoft.Data.SqlClient.SqlTransaction? _, object? __) => {