diff --git a/ClickForensics.Quartz.Manager/ClickForensics.Quartz.Manager.csproj b/ClickForensics.Quartz.Manager/ClickForensics.Quartz.Manager.csproj index 34d50a3..ef624bd 100644 --- a/ClickForensics.Quartz.Manager/ClickForensics.Quartz.Manager.csproj +++ b/ClickForensics.Quartz.Manager/ClickForensics.Quartz.Manager.csproj @@ -161,7 +161,7 @@ True - + Form diff --git a/ClickForensics.Quartz.Manager/ConnectionInfo.cs b/ClickForensics.Quartz.Manager/ConnectionInfo.cs index b71b5d5..9d97873 100644 --- a/ClickForensics.Quartz.Manager/ConnectionInfo.cs +++ b/ClickForensics.Quartz.Manager/ConnectionInfo.cs @@ -7,8 +7,29 @@ namespace ClickForensics.Quartz.Manager { public class ConnectionInfo { + public ConnectionInfo() + { + + } + public static ConnectionInfo Parse(string connectionString) + { + if (connectionString == null) + { + return null; + } + string[] parameters = connectionString.Split(new string[] { "|" }, StringSplitOptions.None); + if (parameters.Length != 3) + { + return null; + } + return new ConnectionInfo { ServerName = parameters[0], Port = int.Parse(parameters[1]), SchedulerName = parameters[2] }; + } public string ServerName { get; set; } public int Port { get; set; } public string SchedulerName { get; set; } + public override string ToString() + { + return string.Format("{0}|{1}|{2}", ServerName, Port, SchedulerName); + } } } diff --git a/ClickForensics.Quartz.Manager/MainForm.cs b/ClickForensics.Quartz.Manager/MainForm.cs index 56bf29f..46574b5 100644 --- a/ClickForensics.Quartz.Manager/MainForm.cs +++ b/ClickForensics.Quartz.Manager/MainForm.cs @@ -96,25 +96,24 @@ namespace ClickForensics.Quartz.Manager using (ServerConnectForm form = new ServerConnectForm()) { form.ShowDialog(); - if (form.Cancelled) + if (!form.Cancelled) { - return; - } - try - { - Scheduler = new QuartzScheduler(form.Server, form.Port, form.Scheduler); - serverConnectStatusLabel.Text = string.Format("Connected to {0}", Scheduler.Address); - connectToolStripMenuItem.Enabled = false; - jobsToolStripMenuItem.Enabled = true; - loadJobGroups(); - updateRunningJobs(); - } - catch (SocketException ex) - { - ErrorDialog dialog = new ErrorDialog(); - dialog.Message = string.Format("Unable to connect to scheduler {0} on {1}:{2}", form.Scheduler, form.Server, form.Port); - dialog.Description = ex.Message; - dialog.ShowDialog(); + try + { + Scheduler = new QuartzScheduler(form.Server, form.Port, form.Scheduler); + serverConnectStatusLabel.Text = string.Format("Connected to {0}", Scheduler.Address); + connectToolStripMenuItem.Enabled = false; + jobsToolStripMenuItem.Enabled = true; + loadJobGroups(); + updateRunningJobs(); + } + catch (SocketException ex) + { + ErrorDialog dialog = new ErrorDialog(); + dialog.Message = string.Format("Unable to connect to scheduler {0} on {1}:{2}", form.Scheduler, form.Server, form.Port); + dialog.Description = ex.Message; + dialog.ShowDialog(); + } } form.Close(); } diff --git a/ClickForensics.Quartz.Manager/RegistryStore.cs b/ClickForensics.Quartz.Manager/RegistryStore.cs index 08e33b5..0b8095f 100644 --- a/ClickForensics.Quartz.Manager/RegistryStore.cs +++ b/ClickForensics.Quartz.Manager/RegistryStore.cs @@ -18,7 +18,7 @@ namespace ClickForensics.Quartz.Manager { for (int i = 0; i < 5; i++) { - ConnectionInfo info = (ConnectionInfo)key.GetValue(string.Format("connection{0}", i), null); + ConnectionInfo info = ConnectionInfo.Parse((key.GetValue(string.Format("connection{0}", i), null) as string)); if (info != null) { lastConnections.Add(info); @@ -30,7 +30,20 @@ namespace ClickForensics.Quartz.Manager } public static void AddConnection(ConnectionInfo info) { + RegistryKey key = Registry.CurrentUser.CreateSubKey("QuartzNetManager").CreateSubKey("MRUList"); + if (key != null) + { + for (int i = 4; i > 0; i--) + { + var previous = key.GetValue(string.Format("connection{0}", i - 1), null); + if (previous != null) + { + key.SetValue(string.Format("connection{0}", i), previous); + } + } + key.SetValue("connection0", info, RegistryValueKind.String); + } } private static object lockObject = new object(); } diff --git a/ClickForensics.Quartz.Manager/ServerConnectForm.Designer.cs b/ClickForensics.Quartz.Manager/ServerConnectForm.Designer.cs index e642345..e463a90 100644 --- a/ClickForensics.Quartz.Manager/ServerConnectForm.Designer.cs +++ b/ClickForensics.Quartz.Manager/ServerConnectForm.Designer.cs @@ -126,6 +126,7 @@ this.Controls.Add(this.btnConnect); this.Name = "ServerConnectForm"; this.Text = "ServerConnectForm"; + this.Load += new System.EventHandler(this.ServerConnectForm_Load); this.ResumeLayout(false); this.PerformLayout(); diff --git a/ClickForensics.Quartz.Manager/ServerConnectForm.cs b/ClickForensics.Quartz.Manager/ServerConnectForm.cs index 3b544b5..93c983f 100644 --- a/ClickForensics.Quartz.Manager/ServerConnectForm.cs +++ b/ClickForensics.Quartz.Manager/ServerConnectForm.cs @@ -19,12 +19,12 @@ namespace ClickForensics.Quartz.Manager private void btnCancel_Click(object sender, EventArgs e) { - Cancelled = true; this.Close(); } private void btnConnect_Click(object sender, EventArgs e) { + Cancelled = false; Server = cboServer.Text; Port = int.Parse(txtPort.Text); Scheduler = txtScheduler.Text; @@ -39,5 +39,11 @@ namespace ClickForensics.Quartz.Manager { } + + private void ServerConnectForm_Load(object sender, EventArgs e) + { + Cancelled = true; + + } } }