Example #1
0
        public async Task UserAvatar(IFormFile avatar)
        {
            var userId = userManager.GetUserId(User);
            var user   = await userManager.FindByIdAsync(userId);

            if (avatar == null)
            {
                throw new BadRequestException("文件格式不正确");
            }

            if (!avatar.ContentType.StartsWith("image/"))
            {
                throw new BadRequestException("文件格式不正确");
            }

            if (avatar.Length > 1048576)
            {
                throw new BadRequestException("文件大小不能超过 1 Mb");
            }

            await using var stream = new System.IO.MemoryStream();

            await avatar.CopyToAsync(stream);

            stream.Seek(0, System.IO.SeekOrigin.Begin);
            var buffer = new byte[stream.Length];
            await stream.ReadAsync(buffer);

            user.Avatar = buffer;
            await userManager.UpdateAsync(user);
        }
Example #2
0
        private async Task <UserInfoModel> GetCurrentUserInfo()
        {
            var userInfoRet = new UserInfoModel
            {
                SignedIn = signInManager.IsSignedIn(User)
            };
            var userId = userManager.GetUserId(User);
            var user   = await userManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(new UserInfoModel());
            }
            userInfoRet.Name       = user.Name;
            userInfoRet.UserId     = user.Id;
            userInfoRet.UserName   = user.UserName;
            userInfoRet.Privilege  = user.Privilege;
            userInfoRet.Coins      = user.Coins;
            userInfoRet.Experience = user.Experience;

            if (userInfoRet.SignedIn)
            {
                userInfoRet.EmailConfirmed       = user.EmailConfirmed;
                userInfoRet.PhoneNumberConfirmed = user.PhoneNumberConfirmed;
                userInfoRet.Email       = user.Email;
                userInfoRet.PhoneNumber = user.PhoneNumber;
                userInfoRet.OtherInfo   = IdentityHelper.GetOtherUserInfo(string.IsNullOrEmpty(user.OtherInfo) ? "{}" : user.OtherInfo);
            }

            return(userInfoRet);
        }