/trunk/Winify/SettingsForm.cs |
@@ -12,10 +12,18 @@ |
{ |
#region Private Delegates, Events, Enums, Properties, Indexers and Fields |
|
private readonly Announcements.Announcements _notifications; |
private readonly BindingSource _announcementBindingSource; |
|
private readonly Announcements.Announcements _announcements; |
|
private readonly BindingSource _serverBindingSource; |
|
private readonly global::Servers.Servers _servers; |
|
private Announcement _announcement; |
|
private Server _server; |
|
#endregion |
|
#region Constructors, Destructors and Finalizers |
@@ -25,19 +33,48 @@ |
InitializeComponent(); |
} |
|
public SettingsForm(global::Servers.Servers servers, Announcements.Announcements notifications) : this() |
public SettingsForm(global::Servers.Servers servers, Announcements.Announcements announcements) : this() |
{ |
_servers = servers; |
_server = _servers.Server.FirstOrDefault() ?? new Server(); |
|
_serverBindingSource = new BindingSource(); |
_serverBindingSource.DataSource = _server; |
|
serverNameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Name), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
serverUrlTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Url), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
serverUsernameTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Username), |
true, |
DataSourceUpdateMode.OnPropertyChanged)); |
serverPasswordTextBox.DataBindings.Add(new Binding("Text", _serverBindingSource, nameof(_server.Password), |
true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
listBox1.DataSource = _servers.Server; |
listBox1.DisplayMember = "Name"; |
listBox1.DataBindings.Add(new Binding("Text", _servers.Server, "Name", true, |
DataSourceUpdateMode.OnPropertyChanged)); |
|
_notifications = notifications; |
listBox2.DataSource = _notifications.Announcement; |
_announcements = announcements; |
_announcement = _announcements.Announcement.FirstOrDefault() ?? new Announcement(); |
|
_announcementBindingSource = new BindingSource(); |
_announcementBindingSource.DataSource = _announcement; |
|
appIdTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource, nameof(_announcement.AppId), |
true, |
DataSourceUpdateMode.OnPropertyChanged)); |
lingerTimeTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource, |
nameof(_announcement.LingerTime), true, |
DataSourceUpdateMode.OnPropertyChanged)); |
speakTextBox.DataBindings.Add(new Binding("Text", _announcementBindingSource, nameof(_announcement.Speak), |
true, DataSourceUpdateMode.OnPropertyChanged)); |
|
listBox2.DataSource = _announcements.Announcement; |
listBox2.DisplayMember = "Id"; |
listBox2.DataBindings.Add(new Binding("Text", _notifications.Announcement, "Id", true, |
listBox2.DataBindings.Add(new Binding("Text", _announcements.Announcement, "Id", true, |
DataSourceUpdateMode.OnPropertyChanged)); |
} |
|
@@ -54,45 +91,17 @@ |
|
private void Button1_Click(object sender, EventArgs e) |
{ |
var name = serverNameTextBox.Text; |
var url = serverUrlTextBox.Text; |
var username = serverUsernameTextBox.Text; |
var password = serverPasswordTextBox.Text; |
var server = new Server(); |
|
if (string.IsNullOrEmpty(name) || |
string.IsNullOrEmpty(url) || |
string.IsNullOrEmpty(username) || |
string.IsNullOrEmpty(password)) |
{ |
return; |
} |
|
var server = new Server(name, url, username, password); |
|
var update = _servers.Server.FirstOrDefault(select => select.Name == server.Name); |
switch (update) |
{ |
default: |
_servers.Server.Remove(update); |
update.Url = server.Url; |
update.Username = server.Username; |
update.Password = server.Password; |
_servers.Server.Add(update); |
break; |
case null: |
_servers.Server.Add(server); |
break; |
} |
_servers.Server.Add(server); |
} |
|
private void Button2_Click(object sender, EventArgs e) |
{ |
listBox1.InvokeIfRequired(listBox => |
if (listBox1.SelectedItem is Server server) |
{ |
var item = listBox.SelectedItem; |
|
_servers.Server.Remove((Server) item); |
}); |
_servers.Server.Remove(server); |
} |
} |
|
private void ListBox1_SelectedIndexChanged(object sender, EventArgs e) |
@@ -99,65 +108,27 @@ |
{ |
var listBox = (ListBox) sender; |
|
if (listBox.SelectedIndex == -1) |
if (listBox.SelectedItem is Server server) |
{ |
serverNameTextBox.Text = string.Empty; |
serverUrlTextBox.Text = string.Empty; |
serverUsernameTextBox.Text = string.Empty; |
serverPasswordTextBox.Text = string.Empty; |
_server = server; |
|
return; |
_serverBindingSource.DataSource = _server; |
} |
|
var server = (Server) listBox.SelectedItem; |
|
serverNameTextBox.Text = server.Name; |
serverUrlTextBox.Text = server.Url; |
serverUsernameTextBox.Text = server.Username; |
serverPasswordTextBox.Text = server.Password; |
} |
|
private void Button3_Click(object sender, EventArgs e) |
{ |
listBox2.InvokeIfRequired(listbox => |
if (listBox2.SelectedItem is Announcement announcement) |
{ |
var item = listbox.SelectedItem; |
|
_notifications.Announcement.Remove((Announcement) item); |
}); |
_announcements.Announcement.Remove(announcement); |
} |
} |
|
private void Button4_Click(object sender, EventArgs e) |
{ |
var appId = appIdTextBox.Text; |
var lingerTime = lingerTimeTextBox.Text; |
var speak = speakTextBox.Text; |
var announcement = new Announcement(); |
|
if (string.IsNullOrEmpty(appId) || |
!int.TryParse(appId, out var numAppId) || |
string.IsNullOrEmpty(lingerTime) || |
!int.TryParse(lingerTime, out var numLingerTime) || |
string.IsNullOrEmpty(speak)) |
{ |
return; |
} |
|
var notification = new Announcement(numAppId, numLingerTime, speak); |
|
var update = _notifications.Announcement.FirstOrDefault(select => select.Id == notification.Id); |
switch (update) |
{ |
default: |
_notifications.Announcement.Remove(update); |
update.AppId = numAppId; |
update.LingerTime = numLingerTime; |
update.Speak = speak; |
_notifications.Announcement.Add(update); |
break; |
case null: |
_notifications.Announcement.Add(notification); |
break; |
} |
_announcements.Announcement.Add(announcement); |
} |
|
private void ListBox2_SelectedIndexChanged(object sender, EventArgs e) |
@@ -164,20 +135,12 @@ |
{ |
var listBox = (ListBox) sender; |
|
if (listBox.SelectedIndex == -1) |
if (listBox.SelectedItem is Announcement announcement) |
{ |
appIdTextBox.Text = string.Empty; |
lingerTimeTextBox.Text = string.Empty; |
speakTextBox.Text = string.Empty; |
_announcement = announcement; |
|
return; |
_announcementBindingSource.DataSource = _announcement; |
} |
|
var notification = (Announcement) listBox.SelectedItem; |
|
appIdTextBox.Text = notification.AppId.ToString(); |
lingerTimeTextBox.Text = notification.LingerTime.ToString(); |
speakTextBox.Text = notification.Speak; |
} |
|
#endregion |