private void AddHubButton_Click(object sender, EventArgs e) { using (var f = new AddHubForm { StartPosition = FormStartPosition.CenterParent }) { var result = f.ShowDialog(); if (result == DialogResult.OK) { var ipPort = f.ipAddress.Text + ":" + f.portNumber.Text; try { var urlString = "http://" + ipPort; var hubResponse = new RestClient(urlString).Execute(new RestRequest("node_id/", Method.GET)).Content; var nodeIdAndHostName = hubResponse.Split(new char[] { ' ' }, 2); AddressHostNameAccessLevel body = new AddressHostNameAccessLevel { Address = ipPort, HostName = nodeIdAndHostName[1], AccessLevel = 1 }; var enabledRes = restClient.Execute(new RestRequest("nodes/" + nodeIdAndHostName[0], Method.PUT, DataFormat.Json) .AddParameter("application/json", JsonConvert.SerializeObject(body), ParameterType.RequestBody)); if (enabledRes.StatusCode != System.Net.HttpStatusCode.OK) { MessageBox.Show("Cannot change node permission. node_id=" + nodeIdAndHostName[0]); return; } var connectedRes = restClient.Execute(new RestRequest("connections/connect?save=1", Method.POST) .AddHeader("Content-type", "application/json").AddJsonBody(new string[] { body.Address })); if (connectedRes.StatusCode != System.Net.HttpStatusCode.OK) { MessageBox.Show("Cannot connect to " + body.Address); return; } ReloadHubList(); } catch (Exception err) { MessageBox.Show("Cannot add " + ipPort + ". Please check IP address and port number. Error: " + err.Message); } } } }
private void NodeList_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex < 0) { return; } if (e.ColumnIndex == 1) { var cell = (DataGridViewComboBoxCell)nodeList.Rows[e.RowIndex].Cells[1]; Int32 selected = 0; for (int i = 0; i < cell.Items.Count; ++i) { if (cell.Items[i].Equals(cell.Value)) { selected = i; } } string nodeId = (string)nodeList.Rows[e.RowIndex].Cells[4].Value; AddressHostNameAccessLevel body = new AddressHostNameAccessLevel { Address = (string)nodeList.Rows[e.RowIndex].Cells[3].Value, HostName = (string)nodeList.Rows[e.RowIndex].Cells[0].Value, AccessLevel = selected }; var enabledRes = restClient.Execute(new RestRequest("nodes/" + nodeId, selected > 0 ? Method.PUT : Method.DELETE, DataFormat.Json) .AddParameter("application/json", JsonConvert.SerializeObject(body), ParameterType.RequestBody)); if (enabledRes.StatusCode != System.Net.HttpStatusCode.OK) { MessageBox.Show("Cannot change node permission. node_id=" + nodeId); return; } var connectedRes = restClient.Execute(new RestRequest("connections/" + (selected > 0 ? "connect" : "disconnect") + "?save=1", Method.POST) .AddHeader("Content-type", "application/json").AddJsonBody(new string[] { body.Address })); if (connectedRes.StatusCode != System.Net.HttpStatusCode.OK) { MessageBox.Show("Cannot connect to " + body.Address); return; } this.nodeList.Invalidate(); } }