Winify

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 6  →  ?path2? @ 7
/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;
}