/trunk/Winify/Form1.cs |
@@ -1,4 +1,5 @@ |
using System; |
using System.Collections.Specialized; |
using System.ComponentModel; |
using System.Configuration; |
using System.Diagnostics; |
@@ -17,11 +18,11 @@ |
{ |
#region Private Delegates, Events, Enums, Properties, Indexers and Fields |
|
private readonly GotifyConnectionManager _gotifyConnectionManager; |
private readonly Servers.Servers _servers; |
|
private AboutForm _aboutForm; |
|
private Servers.Servers _servers; |
private GotifyConnectionManager _gotifyConnectionManager; |
|
private SettingsForm _settingsForm; |
|
@@ -46,13 +47,19 @@ |
Settings.Default.SettingsSaving += Default_SettingsSaving; |
Settings.Default.PropertyChanged += Default_PropertyChanged; |
|
_gotifyConnectionManager = new GotifyConnectionManager(); |
_servers = new Servers.Servers(); |
_servers.Server.CollectionChanged += Server_CollectionChanged; |
|
_gotifyConnectionManager = new GotifyConnectionManager(_servers); |
|
Task.Run(async () => |
{ |
_servers = await LoadServers(); |
var restoredServers = await LoadServers(); |
|
_gotifyConnectionManager.UpdateServers(_servers); |
foreach (var server in restoredServers.Server) |
{ |
_servers.Server.Add(server); |
} |
}); |
} |
|
@@ -64,6 +71,15 @@ |
{ |
if (disposing && components != null) |
{ |
_servers.Server.CollectionChanged -= Server_CollectionChanged; |
|
Settings.Default.SettingsLoaded -= Default_SettingsLoaded; |
Settings.Default.SettingsSaving -= Default_SettingsSaving; |
Settings.Default.PropertyChanged -= Default_PropertyChanged; |
|
_gotifyConnectionManager?.Dispose(); |
_gotifyConnectionManager = null; |
|
components.Dispose(); |
} |
|
@@ -74,6 +90,16 @@ |
|
#region Event Handlers |
|
private async void Server_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) |
{ |
switch (await ServersSerialization.Serialize(_servers, Constants.ServersFile)) |
{ |
case SerializationFailure serializationFailure: |
Debug.WriteLine(serializationFailure.Exception.Message); |
break; |
} |
} |
|
private static void Default_PropertyChanged(object sender, PropertyChangedEventArgs e) |
{ |
Settings.Default.Save(); |
@@ -96,25 +122,9 @@ |
|
_settingsForm = new SettingsForm(_servers); |
_settingsForm.Closing += SettingsForm_Closing; |
_settingsForm.ServersUpdated += SettingsForm_ServersUpdated; |
_settingsForm.Show(); |
} |
|
private async void SettingsForm_ServersUpdated(object sender, ServersUpdatedEventArgs e) |
{ |
_servers = e.Servers; |
|
switch (await ServersSerialization.Serialize(e.Servers, Constants.ServersFile)) |
{ |
case SerializationSuccess _: |
_gotifyConnectionManager.UpdateServers(e.Servers); |
break; |
case SerializationFailure serializationFailure: |
Debug.WriteLine(serializationFailure.Exception.Message); |
break; |
} |
} |
|
private void SettingsForm_Closing(object sender, CancelEventArgs e) |
{ |
if (_settingsForm == null) |
@@ -123,7 +133,6 @@ |
} |
|
_settingsForm.Closing -= SettingsForm_Closing; |
_settingsForm.ServersUpdated -= SettingsForm_ServersUpdated; |
_settingsForm.Dispose(); |
_settingsForm = null; |
} |