public async Task <IActionResult> ChangePassword([FromBody] ChangePasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(StatusCode(400));
            }
            var user = await GetCurrentUserAsync();

            if (user != null)
            {
                var result = await _userManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword);

                if (result.Succeeded)
                {
                    _logger.LogInformation(3, "User changed their password successfully.");

                    if (user.DatosSeguridad == null)
                    {
                        //El usuario no poserĂ­a correctamente configurados los datos de seguridad para la clave privada. Creamos uno nuevo.
                        var securityData = SecurityData.CrearNuevo(model.NewPassword);
                        user.DatosSeguridad = securityData.SecurityString;
                    }
                    else
                    {
                        var securityData = new SecurityData(user.DatosSeguridad);
                        securityData.PasswordChange(model.OldPassword, model.NewPassword);
                        user.DatosSeguridad = securityData.SecurityString;
                    }

                    await _userManager.UpdateAsync(user);

                    return(Ok(new { success = true, message = ManageMessageId.ChangePasswordSuccess }));
                }
                return(Ok(new Response(false, result.Errors.Select(e => e.Description).Aggregate((current, next) => current + " " + next))));
            }
            return(Ok(new Response(false, ManageMessageId.Error.ToString())));
        }