From 197fd1a8112aedfb8f8c0dca5a596387edac0962 Mon Sep 17 00:00:00 2001 From: Brett Hewitson Date: Sun, 19 Dec 2021 11:46:09 +1000 Subject: [PATCH] Changed config type of Whitelist to use custom class --- src/ARKServerManager/App.config | 5 ---- src/ARKServerManager/App.xaml.cs | 2 +- src/ARKServerManager/Config.Designer.cs | 6 ++--- src/ARKServerManager/Config.settings | 5 ++-- .../GlobalSettingsControl.xaml.cs | 23 +++++++++---------- src/ConanServerManager/App.config | 5 ---- src/ConanServerManager/App.xaml.cs | 2 +- src/ConanServerManager/Config.Designer.cs | 6 ++--- src/ConanServerManager/Config.settings | 5 ++-- .../GlobalSettingsControl.xaml.cs | 23 +++++++++---------- ...hitelist.cs => DiscordBotWhitelistItem.cs} | 4 ++-- 11 files changed, 34 insertions(+), 52 deletions(-) rename src/ServerManager.Common/Model/{DiscordBotWhitelist.cs => DiscordBotWhitelistItem.cs} (76%) diff --git a/src/ARKServerManager/App.config b/src/ARKServerManager/App.config index 383dba97..b42991d0 100644 --- a/src/ARKServerManager/App.config +++ b/src/ARKServerManager/App.config @@ -849,11 +849,6 @@ 50 - - - - - False diff --git a/src/ARKServerManager/App.xaml.cs b/src/ARKServerManager/App.xaml.cs index 35e1a6da..55804c4d 100644 --- a/src/ARKServerManager/App.xaml.cs +++ b/src/ARKServerManager/App.xaml.cs @@ -623,7 +623,7 @@ namespace ServerManagerTool }; if (Config.Default.DiscordBotWhitelist != null) { - config.DiscordBotWhitelist.AddRange(Config.Default.DiscordBotWhitelist.Cast()); + config.DiscordBotWhitelist.AddRange(Config.Default.DiscordBotWhitelist); } await ServerManagerBotFactory.GetServerManagerBot().RunAsync(config, DiscordBotHelper.HandleDiscordCommand, DiscordBotHelper.HandleTranslation, _tokenSourceDiscordBot.Token); diff --git a/src/ARKServerManager/Config.Designer.cs b/src/ARKServerManager/Config.Designer.cs index a3cf728c..70017c1f 100644 --- a/src/ARKServerManager/Config.Designer.cs +++ b/src/ARKServerManager/Config.Designer.cs @@ -2977,11 +2977,9 @@ namespace ServerManagerTool { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("\r\n")] - public global::System.Collections.Specialized.StringCollection DiscordBotWhitelist { + public global::ServerManagerTool.DiscordBot.Models.DiscordBotWhitelist DiscordBotWhitelist { get { - return ((global::System.Collections.Specialized.StringCollection)(this["DiscordBotWhitelist"])); + return ((global::ServerManagerTool.DiscordBot.Models.DiscordBotWhitelist)(this["DiscordBotWhitelist"])); } set { this["DiscordBotWhitelist"] = value; diff --git a/src/ARKServerManager/Config.settings b/src/ARKServerManager/Config.settings index afbea840..6923dd2d 100644 --- a/src/ARKServerManager/Config.settings +++ b/src/ARKServerManager/Config.settings @@ -821,9 +821,8 @@ 50 - - <?xml version="1.0" encoding="utf-16"?> -<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" /> + + False diff --git a/src/ARKServerManager/UserControls/GlobalSettingsControl.xaml.cs b/src/ARKServerManager/UserControls/GlobalSettingsControl.xaml.cs index c3d21503..9cf25d1b 100644 --- a/src/ARKServerManager/UserControls/GlobalSettingsControl.xaml.cs +++ b/src/ARKServerManager/UserControls/GlobalSettingsControl.xaml.cs @@ -35,7 +35,7 @@ namespace ServerManagerTool public static readonly DependencyProperty CommonConfigProperty = DependencyProperty.Register(nameof(CommonConfig), typeof(CommonConfig), typeof(GlobalSettingsControl), new PropertyMetadata(null)); public static readonly DependencyProperty WindowStatesProperty = DependencyProperty.Register(nameof(WindowStates), typeof(ComboBoxItemList), typeof(GlobalSettingsControl), new PropertyMetadata(null)); public static readonly DependencyProperty DiscordBotLogLevelsProperty = DependencyProperty.Register(nameof(DiscordBotLogLevels), typeof(ComboBoxItemList), typeof(GlobalSettingsControl), new PropertyMetadata(null)); - public static readonly DependencyProperty DiscordBotWhitelistProperty = DependencyProperty.Register(nameof(DiscordBotWhitelist), typeof(List), typeof(GlobalSettingsControl), new PropertyMetadata(null)); + public static readonly DependencyProperty DiscordBotWhitelistProperty = DependencyProperty.Register(nameof(DiscordBotWhitelist), typeof(List), typeof(GlobalSettingsControl), new PropertyMetadata(null)); public GlobalSettingsControl() { @@ -51,13 +51,10 @@ namespace ServerManagerTool PopulateWindowsStatesComboBox(); PopulateDiscordBotLogLevelsComboBox(); - DiscordBotWhitelist = new List(); + DiscordBotWhitelist = new List(); if (Config.DiscordBotWhitelist != null) { - foreach (var item in Config.DiscordBotWhitelist) - { - DiscordBotWhitelist.Add(new DiscordBotWhitelist() { BotId = item }); - } + DiscordBotWhitelist.AddRange(Config.DiscordBotWhitelist.Select(i => new DiscordBotWhitelistItem() { BotId = i })); } this.DataContext = this; @@ -105,19 +102,21 @@ namespace ServerManagerTool set { SetValue(DiscordBotLogLevelsProperty, value); } } - public List DiscordBotWhitelist + public List DiscordBotWhitelist { - get { return (List)GetValue(DiscordBotWhitelistProperty); } + get { return (List)GetValue(DiscordBotWhitelistProperty); } set { SetValue(DiscordBotWhitelistProperty, value); } } public void ApplyChangesToConfig() { if (Config.DiscordBotWhitelist is null) - Config.DiscordBotWhitelist = new System.Collections.Specialized.StringCollection(); + { + Config.DiscordBotWhitelist = new DiscordBot.Models.DiscordBotWhitelist(); + } Config.DiscordBotWhitelist.Clear(); - Config.DiscordBotWhitelist.AddRange(DiscordBotWhitelist.Select(i => i.BotId).ToArray()); + Config.DiscordBotWhitelist.AddRange(DiscordBotWhitelist.Select(i => i.BotId)); App.ReconfigureLogging(); } @@ -529,7 +528,7 @@ namespace ServerManagerTool #region Discord Bot Whitelist private void AddDiscordBotWhitelist_Click(object sender, RoutedEventArgs e) { - DiscordBotWhitelist.Add(new DiscordBotWhitelist()); + DiscordBotWhitelist.Add(new DiscordBotWhitelistItem()); CollectionViewSource.GetDefaultView(DiscordBotWhitelistGrid.ItemsSource).Refresh(); } @@ -549,7 +548,7 @@ namespace ServerManagerTool if (MessageBox.Show(_globalizer.GetResourceString("ServerSettings_DeleteLabel"), _globalizer.GetResourceString("ServerSettings_DeleteTitle"), MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes) return; - var item = ((DiscordBotWhitelist)((Button)e.Source).DataContext); + var item = ((DiscordBotWhitelistItem)((Button)e.Source).DataContext); DiscordBotWhitelist.Remove(item); CollectionViewSource.GetDefaultView(DiscordBotWhitelistGrid.ItemsSource).Refresh(); diff --git a/src/ConanServerManager/App.config b/src/ConanServerManager/App.config index f49f98e8..b53894bb 100644 --- a/src/ConanServerManager/App.config +++ b/src/ConanServerManager/App.config @@ -618,11 +618,6 @@ 50 - - - - - False diff --git a/src/ConanServerManager/App.xaml.cs b/src/ConanServerManager/App.xaml.cs index 5af5d472..c572e4af 100644 --- a/src/ConanServerManager/App.xaml.cs +++ b/src/ConanServerManager/App.xaml.cs @@ -612,7 +612,7 @@ namespace ServerManagerTool }; if (Config.Default.DiscordBotWhitelist != null) { - config.DiscordBotWhitelist.AddRange(Config.Default.DiscordBotWhitelist.Cast()); + config.DiscordBotWhitelist.AddRange(Config.Default.DiscordBotWhitelist); } await ServerManagerBotFactory.GetServerManagerBot().RunAsync(config, DiscordBotHelper.HandleDiscordCommand, DiscordBotHelper.HandleTranslation, _tokenSourceDiscordBot.Token); diff --git a/src/ConanServerManager/Config.Designer.cs b/src/ConanServerManager/Config.Designer.cs index ad92febf..6cb22b49 100644 --- a/src/ConanServerManager/Config.Designer.cs +++ b/src/ConanServerManager/Config.Designer.cs @@ -2142,11 +2142,9 @@ namespace ServerManagerTool { [global::System.Configuration.UserScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("\r\n")] - public global::System.Collections.Specialized.StringCollection DiscordBotWhitelist { + public global::ServerManagerTool.DiscordBot.Models.DiscordBotWhitelist DiscordBotWhitelist { get { - return ((global::System.Collections.Specialized.StringCollection)(this["DiscordBotWhitelist"])); + return ((global::ServerManagerTool.DiscordBot.Models.DiscordBotWhitelist)(this["DiscordBotWhitelist"])); } set { this["DiscordBotWhitelist"] = value; diff --git a/src/ConanServerManager/Config.settings b/src/ConanServerManager/Config.settings index b0d69914..f6b3777b 100644 --- a/src/ConanServerManager/Config.settings +++ b/src/ConanServerManager/Config.settings @@ -590,9 +590,8 @@ 50 - - <?xml version="1.0" encoding="utf-16"?> -<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" /> + + False diff --git a/src/ConanServerManager/UserControls/GlobalSettingsControl.xaml.cs b/src/ConanServerManager/UserControls/GlobalSettingsControl.xaml.cs index e99c6e26..2aa370ed 100644 --- a/src/ConanServerManager/UserControls/GlobalSettingsControl.xaml.cs +++ b/src/ConanServerManager/UserControls/GlobalSettingsControl.xaml.cs @@ -33,7 +33,7 @@ namespace ServerManagerTool public static readonly DependencyProperty IsAdministratorProperty = DependencyProperty.Register(nameof(IsAdministrator), typeof(bool), typeof(GlobalSettingsControl), new PropertyMetadata(false)); public static readonly DependencyProperty WindowStatesProperty = DependencyProperty.Register(nameof(WindowStates), typeof(ComboBoxItemList), typeof(GlobalSettingsControl), new PropertyMetadata(null)); public static readonly DependencyProperty DiscordBotLogLevelsProperty = DependencyProperty.Register(nameof(DiscordBotLogLevels), typeof(ComboBoxItemList), typeof(GlobalSettingsControl), new PropertyMetadata(null)); - public static readonly DependencyProperty DiscordBotWhitelistProperty = DependencyProperty.Register(nameof(DiscordBotWhitelist), typeof(List), typeof(GlobalSettingsControl), new PropertyMetadata(null)); + public static readonly DependencyProperty DiscordBotWhitelistProperty = DependencyProperty.Register(nameof(DiscordBotWhitelist), typeof(List), typeof(GlobalSettingsControl), new PropertyMetadata(null)); public GlobalSettingsControl() { @@ -49,13 +49,10 @@ namespace ServerManagerTool PopulateWindowsStatesComboBox(); PopulateDiscordBotLogLevelsComboBox(); - DiscordBotWhitelist = new List(); + DiscordBotWhitelist = new List(); if (Config.DiscordBotWhitelist != null) { - foreach (var item in Config.DiscordBotWhitelist) - { - DiscordBotWhitelist.Add(new DiscordBotWhitelist() { BotId = item }); - } + DiscordBotWhitelist.AddRange(Config.DiscordBotWhitelist.Select(i => new DiscordBotWhitelistItem() { BotId = i })); } this.DataContext = this; @@ -103,19 +100,21 @@ namespace ServerManagerTool set { SetValue(DiscordBotLogLevelsProperty, value); } } - public List DiscordBotWhitelist + public List DiscordBotWhitelist { - get { return (List)GetValue(DiscordBotWhitelistProperty); } + get { return (List)GetValue(DiscordBotWhitelistProperty); } set { SetValue(DiscordBotWhitelistProperty, value); } } public void ApplyChangesToConfig() { if (Config.DiscordBotWhitelist is null) - Config.DiscordBotWhitelist = new System.Collections.Specialized.StringCollection(); + { + Config.DiscordBotWhitelist = new DiscordBot.Models.DiscordBotWhitelist(); + } Config.DiscordBotWhitelist.Clear(); - Config.DiscordBotWhitelist.AddRange(DiscordBotWhitelist.Select(i => i.BotId).ToArray()); + Config.DiscordBotWhitelist.AddRange(DiscordBotWhitelist.Select(i => i.BotId)); App.ReconfigureLogging(); } @@ -531,7 +530,7 @@ namespace ServerManagerTool #region Discord Bot Whitelist private void AddDiscordBotWhitelist_Click(object sender, RoutedEventArgs e) { - DiscordBotWhitelist.Add(new DiscordBotWhitelist()); + DiscordBotWhitelist.Add(new DiscordBotWhitelistItem()); CollectionViewSource.GetDefaultView(DiscordBotWhitelistGrid.ItemsSource).Refresh(); } @@ -551,7 +550,7 @@ namespace ServerManagerTool if (MessageBox.Show(_globalizer.GetResourceString("ServerSettings_DeleteLabel"), _globalizer.GetResourceString("ServerSettings_DeleteTitle"), MessageBoxButton.YesNo, MessageBoxImage.Question) != MessageBoxResult.Yes) return; - var item = ((DiscordBotWhitelist)((Button)e.Source).DataContext); + var item = ((DiscordBotWhitelistItem)((Button)e.Source).DataContext); DiscordBotWhitelist.Remove(item); CollectionViewSource.GetDefaultView(DiscordBotWhitelistGrid.ItemsSource).Refresh(); diff --git a/src/ServerManager.Common/Model/DiscordBotWhitelist.cs b/src/ServerManager.Common/Model/DiscordBotWhitelistItem.cs similarity index 76% rename from src/ServerManager.Common/Model/DiscordBotWhitelist.cs rename to src/ServerManager.Common/Model/DiscordBotWhitelistItem.cs index ea456fd9..38b928fb 100644 --- a/src/ServerManager.Common/Model/DiscordBotWhitelist.cs +++ b/src/ServerManager.Common/Model/DiscordBotWhitelistItem.cs @@ -2,9 +2,9 @@ namespace ServerManagerTool.Common.Model { - public class DiscordBotWhitelist : DependencyObject + public class DiscordBotWhitelistItem : DependencyObject { - public static readonly DependencyProperty BotIdProperty = DependencyProperty.Register(nameof(BotId), typeof(string), typeof(DiscordBotWhitelist), new PropertyMetadata("")); + public static readonly DependencyProperty BotIdProperty = DependencyProperty.Register(nameof(BotId), typeof(string), typeof(DiscordBotWhitelistItem), new PropertyMetadata("")); public string BotId {