using Avalonia.Controls; using CommunityToolkit.Mvvm.DependencyInjection; using Prise.Plugin; using PSCHelpdesk.Plugins.HetznerServer.Menu; using PSCHelpdesk.Plugins.HetznerServer.Service; using PSCHelpdesk.Plugins.HetznerServer.ViewModels; using PSCHelpdesk.Plugins.HetznerServer.Views; using PSCHelpdesk.Shared.Menu; using PSCHelpdesk.Shared.Plugin; using PSCHelpdesk.Shared.Service; namespace PSCHelpdesk.Plugins.HetznerServer; [Plugin(PluginType = typeof(Contract))] public class HetznerServer : Contract { public string GetName() { return "HetznerServerPlugin"; } public void Configure() { var menuService = Ioc.Default.GetRequiredService(); var serverTab = new Item() { Header = "Server", CommandParameter = new ServerViewModel(new ServerService()) }; menuService.AddMenuItem(serverTab); var settingsService = Ioc.Default.GetRequiredService(); var hetznerSettings = new Shared.Setting.Item() { Header = "Hetzner", CommandParameter = new HetznerSettingsViewModel() }; settingsService.AddSetting(hetznerSettings); } public List LoadViews() { return [typeof(ServerView), typeof(HetznerSettingsView)]; } }