Example #1
0
        public async Task <IActionResult> Update(string username, [FromBody] UserModelRegister userModel)
        {
            if (username != userModel.UserName)
            {
                return(BadRequest());
            }

            var user = await userManager.FindByNameAsync(username);

            if (user == null)
            {
                // Don't reveal that the user does not exist
                return(BadRequest());
            }

            // Update it with the values from the view model
            user.UserName    = userModel.UserName;
            user.Email       = userModel.Email;
            user.PhoneNumber = userModel.PhoneNumber;

            if (!string.IsNullOrEmpty(userModel.Password))
            {
                // Generate the reset token (this would generally be sent out as a query parameter as part of a 'reset' link in an email)
                string resetToken = await userManager.GeneratePasswordResetTokenAsync(user);

                // Use the reset token to verify the provenance of the reset request and reset the password.
                var updateResult = await userManager.ResetPasswordAsync(user, resetToken, userModel.Password);

                if (!updateResult.Succeeded)
                {
                    return(BadRequest(updateResult.Errors));
                }
            }

            try
            {
                await userManager.UpdateAsync(user);

                var returnUser = mapper.Map <UserModel>(user);
                return(Ok(returnUser));
            }
            catch (Exception ex)
            {
                // return error message if there was an exception
                return(BadRequest(ex.Message));
            }
        }
Example #2
0
        public async Task <IActionResult> Register(UserModelRegister userRegister)
        {
            // map dto to entity
            var ApplicationUser = mapper.Map <ApplicationUser>(userRegister);

            var result = await userManager.CreateAsync(ApplicationUser, userRegister.Password);

            if (result == IdentityResult.Success)
            {
                return(await Login(new UserModelLogin()
                {
                    UserName = userRegister.UserName, Password = userRegister.Password
                }));
            }
            else
            {
                return(BadRequest(result));
            }
        }
        public HttpResponseMessage RegisterUser(UserModelRegister user)
        {
            Chat.Models.User userFull = new Chat.Models.User()
            {
                Username = user.Username,
                Password = user.Password,
                Nickname = user.Nickname
            };

            var userReg = this.repository.Add(userFull);
            var userLog = this.repository.LoginUser(userReg);

            var loggedUser = new UserModelLogged()
            {
                Nickname   = userLog.Nickname,
                SessionKey = userLog.SessionKey
            };

            return(Request.CreateResponse(HttpStatusCode.OK, loggedUser));
        }