public ClientResponse Resolve()
{
try {
ClientResponse response = resolver.Request(this);
if (response.Id != this.Id) {
throw new ResponseException(response, "Mismatching request/response IDs");
}
if (response.ResponseCode != ResponseCode.NoError) {
throw new ResponseException(response);
}
return response;
} catch (ArgumentException e) {
throw new ResponseException("Invalid response", e);
}
}