示例#1
0
        private async void TreeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            TreeNode node = treeView1.SelectedNode;

            if (node == null)
            {
                return;
            }

            if (node.SelectedImageKey == "VirtualMachine")
            {
                if (node.Text == "Rpc Apis")
                {
                    panel5.Visible = false;
                    panel2.Visible = true;
                }
                else
                {
                    panel5.Visible = true;
                    panel2.Visible = false;
                }
            }
            else if (node.Tag is MqttRpcApiInfo apiInfo)
            {
                panel5.Visible = false;
                panel2.Visible = true;

                textBox5.Text  = apiInfo.ApiTopic;
                textBox4.Text  = apiInfo.ExamplePayload;
                textBox12.Text = apiInfo.CalledCount.ToString( );
                textBox13.Text = apiInfo.SpendTotalTime.ToString("F2");
                label15.Text   = apiInfo.Description;
            }
            else if (node.Tag is string topic)
            {
                panel5.Visible = true;
                panel2.Visible = false;

                hslProgress3.Value = 0;
                OperateResult <MqttClientApplicationMessage> message = await mqttSyncClient.ReadTopicPayloadAsync(topic, ReceiveTopicProgressReport);

                if (!message.IsSuccess)
                {
                    MessageBox.Show("Failed: " + message.Message);
                }
                else
                {
                    UpdateMqttTopicMessage(message.Content);
                }
            }
        }
        private async void TreeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            TreeNode node = treeView1.SelectedNode;

            if (node == null)
            {
                return;
            }

            if (node.SelectedImageKey == "VirtualMachine")
            {
                if (node.Text == "Rpc Apis")
                {
                    panel5.Visible = false;
                    panel2.Visible = true;
                }
                else
                {
                    panel5.Visible = true;
                    panel2.Visible = false;
                }
            }
            else if (node.Tag is MqttRpcApiInfo apiInfo)
            {
                panel5.Visible = false;
                panel2.Visible = true;

                textBox5.Text  = apiInfo.ApiTopic;
                textBox4.Text  = apiInfo.ExamplePayload;
                textBox12.Text = apiInfo.CalledCount.ToString( );
                textBox13.Text = apiInfo.SpendTotalTime.ToString("F2");
                label15.Text   = apiInfo.Description;


                OperateResult <long[]> read = mqttSyncClient.ReadRpcApiLog(apiInfo.ApiTopic);
                if (read.IsSuccess)
                {
                    long[]   data  = read.Content.SelectLast(7);
                    int[]    ydata = new int[7];
                    string[] xdata = new string[7];
                    for (int i = 0; i < 7; i++)
                    {
                        ydata[i] = (int)data[i];
                        xdata[i] = DateTime.Now.AddDays(i - 6).ToString("M-d");
                        hslBarChart1.SetDataSource(ydata, xdata);
                    }
                }
                else
                {
                    hslBarChart1.SetDataSource(new int[7]);
                }
            }
            else if (node.Tag is string topic)
            {
                panel5.Visible = true;
                panel2.Visible = false;

                hslProgress3.Value = 0;
                OperateResult <MqttClientApplicationMessage> message = await mqttSyncClient.ReadTopicPayloadAsync(topic, ReceiveTopicProgressReport);

                if (!message.IsSuccess)
                {
                    MessageBox.Show("Failed: " + message.Message);
                }
                else
                {
                    UpdateMqttTopicMessage(message.Content);
                }
            }
        }