Files
NebulaLauncher/Nebula.Launcher/ViewModels/ServerListViewModel.cs

46 lines
1.3 KiB
C#
Raw Normal View History

2024-12-21 15:15:04 +03:00
using System;
2024-12-22 16:38:47 +03:00
using System.Collections.ObjectModel;
using CommunityToolkit.Mvvm.ComponentModel;
using Nebula.Launcher.Models;
using Nebula.Launcher.Services;
2024-12-21 15:15:04 +03:00
using Nebula.Launcher.ViewHelper;
using Nebula.Launcher.Views.Pages;
namespace Nebula.Launcher.ViewModels;
[ViewRegister(typeof(ServerListView))]
2024-12-22 16:38:47 +03:00
public partial class ServerListViewModel : ViewModelBase
2024-12-21 15:15:04 +03:00
{
2024-12-22 16:38:47 +03:00
public ObservableCollection<ServerInfo> ServerInfos { get; }
[ObservableProperty]
private ServerInfo? _selectedListItem;
public ServerListViewModel()
{
ServerInfos = new ObservableCollection<ServerInfo>();
}
public ServerListViewModel(IServiceProvider serviceProvider, HubService hubService) : base(serviceProvider)
{
ServerInfos = new ObservableCollection<ServerInfo>();
hubService.HubServerChangedEventArgs += HubServerChangedEventArgs;
}
private void HubServerChangedEventArgs(HubServerChangedEventArgs obj)
2024-12-21 15:15:04 +03:00
{
2024-12-22 16:38:47 +03:00
if (obj.Action == HubServerChangeAction.Add)
{
foreach (var info in obj.Items)
{
ServerInfos.Add(info);
}
}
else
{
foreach (var info in obj.Items)
{
ServerInfos.Remove(info);
}
}
2024-12-21 15:15:04 +03:00
}
}