public async Task <User> UpdateAsync(User modifiedEntity, User originalEntity) { try { var userToUpdate = await userRepository.GetByConditionAsync(s => s.Nickname == originalEntity.Nickname).ConfigureAwait(false); await userValidator.ValidateUpdateAsync(modifiedEntity, userToUpdate).ConfigureAwait(false); userToUpdate.Nickname = modifiedEntity.Nickname; userToUpdate.Email = modifiedEntity.Email; userToUpdate.Birthday = modifiedEntity.Birthday; userToUpdate.FullName = modifiedEntity.FullName; userToUpdate.Password = modifiedEntity.Password; userRepository.Update(userToUpdate); await userRepository.SaveChangesAsync().ConfigureAwait(false); return(modifiedEntity); } catch (Exception e) { throw new BusinessLogicException(e.Message); } }