示例#1
0
        /// <summary>
        /// 更新当前用户资料
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task UpdateCurrentUserProfile(CurrentUserProfileEditDto input)
        {
            var user = await GetCurrentUserAsync();

            var userAccount = await _userAccountManager.GetByUserIdAsync(AbpSession.GetUserId());

            ObjectMapper.Map(input, user);
            CheckErrors(await UserManager.Update4PlatformAsync(user));
            userAccount.NickName = input.NickName;
            userAccount.Gender   = input.Gender;

            if (Clock.SupportsMultipleTimezone)
            {
                if (input.Timezone.IsNullOrEmpty())
                {
                    var defaultValue = await _timeZoneService.GetDefaultTimezoneAsync(SettingScopes.User, AbpSession.TenantId);

                    await SettingManager.ChangeSettingForUserAsync(AbpSession.ToUserIdentifier(), TimingSettingNames.TimeZone, defaultValue);
                }
                else
                {
                    await SettingManager.ChangeSettingForUserAsync(AbpSession.ToUserIdentifier(), TimingSettingNames.TimeZone, input.Timezone);
                }
            }
        }