From b70fa35ef6795fbdf425143501e45d82919841ae Mon Sep 17 00:00:00 2001 From: eugeniy_ivanov Date: Thu, 2 Feb 2023 15:21:48 +0500 Subject: [PATCH] bug fixing in UserRepositoty.UpdateAsync --- .../Repository/UserRepository.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/AsbCloudInfrastructure/Repository/UserRepository.cs b/AsbCloudInfrastructure/Repository/UserRepository.cs index efc0db16..9a666b68 100644 --- a/AsbCloudInfrastructure/Repository/UserRepository.cs +++ b/AsbCloudInfrastructure/Repository/UserRepository.cs @@ -101,13 +101,14 @@ namespace AsbCloudInfrastructure.Repository var userRoles = await userRoleRepository.GetByNamesAsync(dto.RoleNames, token).ConfigureAwait(false); await UpdateRolesCacheForUserAsync(dto.Id, userRoles, token); - - var entity = Convert(dto); - - var result = dbContext.Users.Upsert(entity); - await dbContext.SaveChangesAsync(token); + var userInDb = dbContext.Users.FirstOrDefault(u => u.Id == dto.Id); + if (userInDb is not null) + { + userInDb = Convert(dto); + await dbContext.SaveChangesAsync(token); + } DropCacheUsers(); - return result.Entity.Id; + return userInDb!.Id; } public async Task DeleteAsync(int id, CancellationToken token) @@ -213,7 +214,7 @@ namespace AsbCloudInfrastructure.Repository protected virtual User Convert(UserExtendedDto dto) { - var entity = dto.Adapt(userTypeAdapterConfig); + var entity = dto.Adapt(userTypeAdapterConfig); if (string.IsNullOrEmpty(entity.PasswordHash)) entity.PasswordHash = dbContext.Users.FirstOrDefault(u => u.Id == dto.Id)?.PasswordHash; return entity;