public IActionResult Change(UserDTO userDTO)
        {
            var userVM = new UserChangePassViewModel
            {
                Id          = userDTO.Id,
                UserName    = userDTO.UserName,
                OldPassword = userDTO.Password
            };

            return(View(userVM));
        }
        public async Task <IActionResult> Change(UserChangePassViewModel userChangeVM)
        {
            var user = await this.userManager.FindByNameAsync(userChangeVM.UserName);

            var changePasswordResult = await this.userManager.ChangePasswordAsync(user, userChangeVM.OldPassword, userChangeVM.NewPassword);

            if (!changePasswordResult.Succeeded)
            {
                foreach (var error in changePasswordResult.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
                return(View(userChangeVM));
            }

            await signInManager.RefreshSignInAsync(user);

            user.ChangedPassword = true;
            await this.userManager.UpdateAsync(user);

            this.toastNotification.AddSuccessToastMessage("Your password has been changed.");
            Log.Information($"{DateTime.Now} User with Id: {user.Id} has changed their password successfully.");
            return(RedirectToAction("Index", "Home"));
        }