示例#1
0
        public async Task <AjaxResult> UpdateInfo(UserDetailInputDto userDetailDto)
        {
            Check.NotNull(userDetailDto, nameof(userDetailDto));
            var(result, obj) = await _userCenterContract.UpdateUserDetailAsync(userDetailDto);

            if (result)
            {
                ServiceProvider.GetService <IOnlineUserCache>()?.Remove(User.Identity.Name);
                return(AjaxResult.CreateSuccess(obj));
            }
            else
            {
                return(AjaxResult.CreateError(obj));
            }
        }
        public async Task <ValueTuple <bool, string> > UpdateUserDetailAsync(UserDetailInputDto userDetailDto)
        {
            var userDetail = await _userDetailRepository.GetAsync(userDetailDto.Id);

            if (userDetail == null)
            {
                return(false, "无法找到该用户的详细信息");
            }

            var user = await _userRepository.GetAsync(userDetail.UserId);

            if (user == null)
            {
                return(false, "无法找到该用户");
            }

            await _userDetailRepository.UnitOfWork.BeginOrUseTransactionAsync();

            try
            {
                userDetail.Profile = userDetailDto.ToUserDetailJson();
                _userDetailRepository.Update(userDetail);
                user.NickName    = userDetailDto.NickName;
                user.PhoneNumber = userDetailDto.Telephone;
                await _userRepository.UpdateAsync(user);

                _userDetailRepository.UnitOfWork.Commit();

                return(true, "更新成功");
            }
            catch (Exception ex)
            {
                _userDetailRepository.UnitOfWork.Rollback();
                var msg = $"更新用户:{user.UserName}信息失败:{ex.GetBaseException().Message}";
                _logger.LogError(msg);
                return(false, msg);
            }
        }