Changed config type of Whitelist to use custom class

This commit is contained in:
Brett Hewitson 2021-12-19 11:46:09 +10:00
parent a74bc2dc78
commit 197fd1a811
11 changed files with 34 additions and 52 deletions

View file

@ -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<DiscordBotWhitelist>), typeof(GlobalSettingsControl), new PropertyMetadata(null));
public static readonly DependencyProperty DiscordBotWhitelistProperty = DependencyProperty.Register(nameof(DiscordBotWhitelist), typeof(List<DiscordBotWhitelistItem>), typeof(GlobalSettingsControl), new PropertyMetadata(null));
public GlobalSettingsControl()
{
@ -51,13 +51,10 @@ namespace ServerManagerTool
PopulateWindowsStatesComboBox();
PopulateDiscordBotLogLevelsComboBox();
DiscordBotWhitelist = new List<DiscordBotWhitelist>();
DiscordBotWhitelist = new List<DiscordBotWhitelistItem>();
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> DiscordBotWhitelist
public List<DiscordBotWhitelistItem> DiscordBotWhitelist
{
get { return (List<DiscordBotWhitelist>)GetValue(DiscordBotWhitelistProperty); }
get { return (List<DiscordBotWhitelistItem>)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();