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
|
|
|
}
|
|
|
|
|
}
|