Started working on reworking of event system for changed channel data
This commit is contained in:
parent
d0662351d7
commit
c236dabb0e
16
Events/ChannelDataChangedEventArgs.cs
Normal file
16
Events/ChannelDataChangedEventArgs.cs
Normal 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();
|
||||||
|
}
|
||||||
|
}
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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)
|
||||||
|
Reference in New Issue
Block a user