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;
+
+ }
}
}