Started working on reworking of event system for changed channel data

This commit is contained in:
Enrico Ludwig 2024-08-27 20:02:12 +02:00
parent d0662351d7
commit c236dabb0e
3 changed files with 35 additions and 9 deletions

View File

@ -0,0 +1,16 @@
using System;
namespace BetterRaid.Events;
public class ChannelDataChangedEventArgs : EventArgs
{
public static ChannelDataChangedEventArgs FromViewerCount(int old, int now)
{
return new ChannelDataChangedEventArgs();
}
public static ChannelDataChangedEventArgs FromIsLive(bool old, bool now)
{
return new ChannelDataChangedEventArgs();
}
}

View File

@ -4,6 +4,7 @@ using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Avalonia.Media; using Avalonia.Media;
using Avalonia.Threading; using Avalonia.Threading;
using BetterRaid.Events;
using BetterRaid.Models; using BetterRaid.Models;
using TwitchLib.Api.Helix.Models.Raids.StartRaid; using TwitchLib.Api.Helix.Models.Raids.StartRaid;
using TwitchLib.Api.Helix.Models.Search; using TwitchLib.Api.Helix.Models.Search;
@ -34,6 +35,8 @@ public class RaidButtonViewModel : ViewModelBase
public DateTime? LastRaided => MainVm?.Database?.GetLastRaided(ChannelName); public DateTime? LastRaided => MainVm?.Database?.GetLastRaided(ChannelName);
public event EventHandler<ChannelDataChangedEventArgs>? ChannelDataChanged;
public RaidButtonViewModel(string channelName) public RaidButtonViewModel(string channelName)
{ {
ChannelName = channelName; ChannelName = channelName;
@ -161,6 +164,20 @@ public class RaidButtonViewModel : ViewModelBase
private void OnChannelDataChanged(object? sender, PropertyChangedEventArgs e) private void OnChannelDataChanged(object? sender, PropertyChangedEventArgs e)
{ {
OnPropertyChanged(nameof(Channel)); switch (e.PropertyName)
{
case "IsLive":
OnChannelDataChanged(ChannelDataChangedEventArgs.FromIsLive(false, true));
break;
case "ViewerCount":
OnChannelDataChanged(ChannelDataChangedEventArgs.FromViewerCount(0, 10));
break;
}
}
private void OnChannelDataChanged(ChannelDataChangedEventArgs args)
{
ChannelDataChanged?.Invoke(this, args);
} }
} }

View File

@ -69,7 +69,7 @@ public partial class MainWindow : Window
foreach (var rbvm in _raidButtonVMs) foreach (var rbvm in _raidButtonVMs)
{ {
rbvm.PropertyChanged -= OnRaidButtonViewModelChanged;
} }
_raidButtonVMs.Clear(); _raidButtonVMs.Clear();
@ -89,8 +89,6 @@ public partial class MainWindow : Window
MainVm = vm MainVm = vm
}; };
rbvm.PropertyChanged += OnRaidButtonViewModelChanged;
_raidButtonVMs.Add(rbvm); _raidButtonVMs.Add(rbvm);
} }
@ -100,11 +98,6 @@ public partial class MainWindow : Window
} }
} }
private void OnRaidButtonViewModelChanged(object? sender, PropertyChangedEventArgs e)
{
}
private void GenerateRaidGrid() private void GenerateRaidGrid()
{ {
foreach (var child in raidGrid.Children) foreach (var child in raidGrid.Children)