Files
Torch/Torch.Server/ViewModels/PluginManagerViewModel.cs

33 lines
1001 B
C#

using System.Collections.Generic;
using System.Linq;
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));
}
}
}
}