Files
Torch/Torch.Server/ViewModels/PluginManagerViewModel.cs
2022-01-22 21:13:38 +07:00

37 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Torch.API;
using Torch.API.Managers;
using Torch.API.Plugins;
using Torch.Collections;
namespace Torch.Server.ViewModels
{
public class PluginManagerViewModel : ViewModel
{
public MtObservableList<PluginViewModel> Plugins { get; } = new MtObservableList<PluginViewModel>();
public PluginViewModel SelectedPlugin { get; set; }
public PluginManagerViewModel() { }
public PluginManagerViewModel(IPluginManager pluginManager)
{
foreach (var plugin in pluginManager.OrderBy(x=>x.Name))
Plugins.Add(new PluginViewModel(plugin));
pluginManager.PluginsLoaded += PluginManager_PluginsLoaded;
}
private void PluginManager_PluginsLoaded(IReadOnlyCollection<ITorchPlugin> obj)
{
Plugins.Clear();
foreach (var plugin in obj)
{
Plugins.Add(new PluginViewModel(plugin));
}
}
}
}