public async Task <IHttpActionResult> ChangePassword(ChangePasswordDto changePasswordDto) { _logger.Debug("Begin"); if (!ModelState.IsValid) { _logger.Error(string.Format( "Model state is not valid. ModelState: [{0}]", string.Join(Environment.NewLine, ModelState.Select(x => string.Format("{0}: {1}", x.Key, x.Value))))); return(BadRequest(ModelState)); } var id = User.Identity.GetUserId(); IdentityResult result = await NdUserManager.ChangePasswordAsync(id, changePasswordDto.OldPassword, changePasswordDto.NewPassword); if (!result.Succeeded) { _logger.Error(string.Format( "Change password failed. Id: [{0}], Reason: [{1}]", User.Identity.GetUserId(), string.Join(Environment.NewLine, result.Errors))); return(GetErrorResult(result)); } _logger.Debug(string.Format("Password changed successfully. Id: [{0}]", id)); return(Ok()); }