public async Task <IActionResult> ChangePassword([FromBody] ChangePasswordViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var user = await userManager.FindByIdAsync(vm.UserId);

                if (user != null)
                {
                    var result = await userManager.ChangePasswordAsync(user, vm.CurrentPassword, vm.Password);

                    if (result.Succeeded)
                    {
                        await signInManager.RefreshSignInAsync(user);

                        await this.UpdateIsOneTimePasswordChanged(user);

                        return(StatusCode(200, new { response = ApiMessages.PasswordChanged() }));
                    }
                    return(StatusCode(494, new { response = result.Errors.Select(x => x.Description) }));
                }
                return(StatusCode(404, new { response = ApiMessages.RecordNotFound() }));
            }
            return(StatusCode(400, new { response = ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage) }));
        }