Ejemplo n.º 1
0
        public async Task <IActionResult> UpdateData([FromBody] PersonalDataRequestModel model)
        {
            PersonalDataResponseModel result = await _userService.UpdatePersonalDataAsync(User.Identity.Name, model);

            return(Ok(result));
        }
Ejemplo n.º 2
0
        public async Task <PersonalDataResponseModel> UpdatePersonalDataAsync(string userId, PersonalDataRequestModel model)
        {
            ApplicationUser user = await _context.Users.FirstOrDefaultAsync(x => x.Id == userId);

            if (model.Email != user.Email)
            {
                var result = await _userManager.SetEmailAsync(user, model.Email);

                if (!result.Succeeded)
                {
                    throw new ApiException("Неверный email", 400);
                }

                result = await _userManager.SetUserNameAsync(user, model.Email);

                if (!result.Succeeded)
                {
                    throw new ApiException("Неверный email", 400);
                }
            }

            user.Photo       = model.Photo;
            user.PhoneNumber = model.Phone;
            user.Name        = model.Name;

            if (!string.IsNullOrEmpty(model.Password))
            {
                var code = await _userManager.GeneratePasswordResetTokenAsync(user);

                var result = await _userManager.ResetPasswordAsync(user, code, model.Password);

                if (!result.Succeeded)
                {
                    throw new ApiException("Неверный пароль", 400);
                }
            }

            await _context.SaveChangesAsync();

            return(_mapper.Map <PersonalDataResponseModel>(user));
        }