--- dao/DaoMqPump2/DaoMqGUI/MainForm.cs 2013/07/03 07:56:52 1986 +++ dao/DaoMqPump2/DaoMqGUI/MainForm.cs 2013/07/08 14:23:01 2000 @@ -7,19 +7,41 @@ using System.Windows.Forms; using DaoMqGUI.ServiceReference1; +using System.ServiceModel; +using Microsoft.Win32; namespace DaoMqGUI { public partial class MainForm : Form { - RemoteControlClient client = new RemoteControlClient(); + RemoteControlClient client = null; List transportNameList = new List(); + string hostname = ""; + public MainForm() { InitializeComponent(); - loadTransports(); + + //initClient(); is now called on shown() event + // loadTransports(); is now called on shown() event + + } + + private void initClient() + { + RegistryKey key = Registry.LocalMachine.CreateSubKey("Software\\DAO\\DaoMqGui"); + + hostname = (string) key.GetValue("Hostname", "localhost"); + hostname = hostname.Trim(); + + lnkServer.Text = hostname; + + //Step 1 - initialize client + BasicHttpBinding binding = new BasicHttpBinding(); + EndpointAddress endpoint = new EndpointAddress(new Uri("http://" + hostname + ":8000/RemoteControl/RemoteControl")); + client = new RemoteControlClient(binding, endpoint); } private string[] getSafeTransports() @@ -55,13 +77,13 @@ foreach (string t in transportNames) { transportNameList.Add(t); - - bool enabled = client.GetTransportEnabled(t); + StatusData statusData = client.GetTransportStatus(t); + bool enabled = statusData.transportEnabled; string status = ""; if (enabled) { - bool lastOk = client.GetTransportLastrunOk(t); + bool lastOk = statusData.lastrunOk; if (lastOk) { @@ -131,36 +153,31 @@ private void transports_SelectedIndexChanged(object sender, EventArgs e) { - loadFormData(); + showData(); } - private void loadFormData() + private void loadStatusData() { if (transports.SelectedIndex == -1) return; string transportName = transportNameList[transports.SelectedIndex]; - bool enabled = client.GetTransportEnabled(transportName); - bool lastOk = client.GetTransportLastrunOk(transportName); - - string lastokTime = client.GetTransportLastOkTime(transportName); - string lastErrorTime = client.GetTransportLastErrorTime(transportName); + StatusData statusData = client.GetTransportStatus(transportName); - string errorMsg = client.GetTransportLastErrorMessage(transportName); - - int counter = client.GetTransportCounter(transportName); + bool enabled = statusData.transportEnabled; txtTransport.Text = transportName; txtEnabled.Text = "" + enabled; - txtLastOK.Text = "" + lastOk; + txtLastOK.Text = "" + statusData.lastrunOk; - txtOkTime.Text = lastokTime; - txtErrorTime.Text = lastErrorTime; + txtOkTime.Text = statusData.lastOkTime; + txtErrorTime.Text = statusData.lastErrorTime; + txtTransferTime.Text = statusData.lastTransferTime; - txtErrorMsg.Text = errorMsg; + txtErrorMsg.Text = statusData.lastErrorMessage; - txtCounter.Text = "" + counter; + txtCounter.Text = "" + statusData.counter; @@ -176,10 +193,7 @@ if (transports.SelectedIndex == -1) return; - if (tabControl1.SelectedIndex != 0) //0 er status siden - return; - - loadFormData(); + showData(); } private void loadLog() @@ -219,7 +233,7 @@ } - private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) + private void showData() { if (transports.SelectedIndex == -1) return; @@ -227,7 +241,7 @@ switch (tabControl1.SelectedIndex) { case 0: - loadFormData(); + loadStatusData(); break; case 1: loadLog(); @@ -238,5 +252,35 @@ } } + private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) + { + showData(); + } + + private void lnkServer_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) + { + string tmp_hostname = Microsoft.VisualBasic.Interaction.InputBox("Indtast servernavn/ip", "MQ Gui", hostname); + if (tmp_hostname == null || tmp_hostname.Trim().Length == 0) + return; + + hostname = tmp_hostname.Trim(); + + RegistryKey key = Registry.LocalMachine.CreateSubKey("Software\\DAO\\DaoMqGui"); + key.SetValue("Hostname", hostname, RegistryValueKind.String); + key.Close(); + + initClient(); + loadTransports(); + } + + private void MainForm_Shown(object sender, EventArgs e) + { + lnkServer.Text = "Connecting ..."; + this.Refresh(); //force a redraw now () before we do the heavy work + + initClient(); + loadTransports(); + } + } }