Exemplo n.º 1
0
        public async Task <object> ChangePasswordAsync(ChangePasswordRequest request)
        {
            var user = await unitOfWork.UserRepository.Find(u => u.Id == long.Parse(request.UserID));

            var status = WordPressPasswordUtil.IsValid(request.OldPassword, user.Single().UserPass);

            if (!status)
            {
                //Old Password not matched
                return(new
                {
                    Status = false,
                    Message = "Your old Password doesn't match"
                });
            }
            else
            {
                //Change the Password
                var passwordHash = Crypter.Phpass.Crypt(request.NewPassword);

                var userDetails = user.Single();
                userDetails.UserPass = passwordHash;
                unitOfWork.UserRepository.Update(userDetails);
                await unitOfWork.SaveChangesAsync();

                return(new
                {
                    Status = true,
                    Message = "Password updated successfully"
                });
            }
        }