private QueryResponse ExecuteQuery(string query) { lock (this.@lock) { var stream = this.Client.GetStream(); this.SendMessage(stream, query); var responseJson = JObject.Parse(this.ReceiveMessage(stream)); if (responseJson.ContainsKey("error")) { throw new InvalidDataException(responseJson["error"].ToString()); } return(QueryResponse.FromJson(responseJson)); } }