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

50 lines
1.5 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 21:38:19 +03:00
public ObservableCollection<ServerHubInfo> ServerInfos { get; }
2024-12-22 16:38:47 +03:00
[ObservableProperty]
2024-12-22 21:38:19 +03:00
private ServerHubInfo? _selectedListItem;
//Design think
2024-12-22 16:38:47 +03:00
public ServerListViewModel()
{
2024-12-22 21:38:19 +03:00
ServerInfos = new ObservableCollection<ServerHubInfo>();
2024-12-23 20:45:34 +03:00
ServerInfos.Add(new ServerHubInfo("ss14://localhost",new ServerStatus("Nebula","TestCraft", ["16+","RU"], "super", 12,55,1,false,DateTime.Now, 20),[]));
2024-12-22 16:38:47 +03:00
}
2024-12-22 21:38:19 +03:00
//real think
2024-12-22 16:38:47 +03:00
public ServerListViewModel(IServiceProvider serviceProvider, HubService hubService) : base(serviceProvider)
{
2024-12-22 21:38:19 +03:00
ServerInfos = new ObservableCollection<ServerHubInfo>();
2024-12-22 16:38:47 +03:00
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
}
}