diff --git a/.idea/.idea.PSCHelpdesk/.idea/.name b/.idea/.idea.PSCHelpdesk/.idea/.name deleted file mode 100644 index 6f7d947..0000000 --- a/.idea/.idea.PSCHelpdesk/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -PSCHelpdesk \ No newline at end of file diff --git a/.idea/.idea.PSCHelpdesk/.idea/workspace.xml b/.idea/.idea.PSCHelpdesk/.idea/workspace.xml index 925d175..d8fbe9c 100644 --- a/.idea/.idea.PSCHelpdesk/.idea/workspace.xml +++ b/.idea/.idea.PSCHelpdesk/.idea/workspace.xml @@ -11,18 +11,21 @@ + - + - - - - + + + + + + - - - - - - - - - - - - - - + + + + - - + + + + @@ -86,6 +81,7 @@ "Publish to folder.Build HetznerServer Plugin Debug.executor": "Run", "Publish to folder.Publish HetznerServer to folder.executor": "Run", "RunOnceActivity.ShowReadmeOnStart": "true", + "XThreadsFramesViewSplitterKey": "0.4427131", "git-widget-placeholder": "master", "last_opened_file_path": "/home/thomas/RiderProjects/PSCHelpdesk/PSCHelpdesk/PSCHelpdesk.Desktop/bin/Debug/net9.0/plugins", "node.js.detected.package.eslint": "true", @@ -175,6 +171,7 @@ + @@ -188,45 +185,6 @@ - - file://$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/MainWindowViewModel.cs - 78 - - - - - - - - - file://$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/MainWindowViewModel.cs - 75 - - - - - - - - - file://$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/MainWindowViewModel.cs - 76 - - - - - - - file://$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/ContentDisplay.axaml.cs 37 @@ -254,43 +212,95 @@ - file://$PROJECT_DIR$/HetznerServer/HetznerServer.cs - 26 - + file://$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/MainWindowViewModel.cs + 75 + - - - - file://$PROJECT_DIR$/HetznerServer/HetznerServer.cs - 28 - + file://$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Services/PluginService.cs + 85 + - - - - file://$PROJECT_DIR$/HetznerServer/HetznerServer.cs - 27 - + file://$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Services/PluginService.cs + 87 + - - - + + file://$PROJECT_DIR$/Vendor/Prise/Infrastructure/JsonSerializerResultConverter.cs + 21 + + + + + + + + + file://$PROJECT_DIR$/Vendor/Prise/Infrastructure/JsonSerializerResultConverter.cs + 20 + + + + + + + + + file://$PROJECT_DIR$/Vendor/Prise/Infrastructure/JsonSerializerResultConverter.cs + 19 + + + + + + + + + file://$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/MainWindowViewModel.cs + 53 + + + + + + + diff --git a/HetznerServer/HetznerServer.cs b/HetznerServer/HetznerServer.cs index 7d67244..a12287f 100644 --- a/HetznerServer/HetznerServer.cs +++ b/HetznerServer/HetznerServer.cs @@ -1,3 +1,4 @@ +using Avalonia.Controls; using CommunityToolkit.Mvvm.DependencyInjection; using Prise.Plugin; using PSCHelpdesk.Plugins.HetznerServer.Menu; @@ -17,23 +18,21 @@ public class HetznerServer : Contract return "HetznerServerPlugin"; } - public async Task> addMenu() + public void addMenu() { - var menu = new MainMenu(); - //menu.addMenu(); - - - var menuService = Ioc.Default.GetService(); - var testService = Ioc.Default.GetService(); - var list = new List(); var serverTab = new Item() { Header = "Server", - // CommandParameter = typeof(ServerViewModel) + CommandParameter = new ServerViewModel(), + GetView = new ServerView() }; - list.Add(serverTab); - return list; + menuService.AddMenuItem(serverTab); + //return serverTab; + } + public UserControl load() + { + return new ServerView(); } } \ No newline at end of file diff --git a/HetznerServer/HetznerServer.csproj b/HetznerServer/HetznerServer.csproj index 6035396..ef23b7a 100644 --- a/HetznerServer/HetznerServer.csproj +++ b/HetznerServer/HetznerServer.csproj @@ -43,6 +43,7 @@ + diff --git a/HetznerServer/HetznerServerBootstrap.cs b/HetznerServer/HetznerServerBootstrap.cs index e6b1136..6bd1b1b 100644 --- a/HetznerServer/HetznerServerBootstrap.cs +++ b/HetznerServer/HetznerServerBootstrap.cs @@ -1,22 +1,22 @@ +using CommunityToolkit.Mvvm.DependencyInjection; using PSCHelpdesk.Plugins.HetznerServer.ViewModels; using PSCHelpdesk.Shared.Service; - -namespace PSCHelpdesk.Plugins.HetznerServer; - using Microsoft.Extensions.DependencyInjection; using Prise.Plugin; +namespace PSCHelpdesk.Plugins.HetznerServer; [PluginBootstrapper(PluginType = typeof(HetznerServer))] public class HetznerServerBootstrap : IPluginBootstrapper { - //[BootstrapperService(ServiceType = typeof(IMenuService), ProxyType = typeof(MenuService))] - //private readonly IMenuService menuService; + [BootstrapperService(ServiceType = typeof(IMenuService), ProxyType = typeof(MenuService))] + private readonly IMenuService menuService; public IServiceCollection Bootstrap(IServiceCollection services) { - //services.AddSingleton(this.menuService); + services.AddSingleton(this.menuService); services.AddTransient(); + Ioc.Default.ConfigureServices(services.BuildServiceProvider()); return services; } } diff --git a/HetznerServer/Views/ServerView.axaml b/HetznerServer/Views/ServerView.axaml index 230a89f..0bbb8f3 100644 --- a/HetznerServer/Views/ServerView.axaml +++ b/HetznerServer/Views/ServerView.axaml @@ -6,6 +6,9 @@ mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" x:Class="PSCHelpdesk.Plugins.HetznerServer.Views.ServerView" x:DataType="vm:ServerViewModel"> + + + diff --git a/PSCHelpdesk.sln.DotSettings.user b/PSCHelpdesk.sln.DotSettings.user index 4e31eb8..4fa9333 100644 --- a/PSCHelpdesk.sln.DotSettings.user +++ b/PSCHelpdesk.sln.DotSettings.user @@ -1,6 +1,8 @@  + ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded @@ -19,6 +21,8 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded @@ -28,6 +32,7 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded @@ -37,6 +42,7 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded diff --git a/PSCHelpdesk/PSCHelpdesk/Services/PluginService.cs b/PSCHelpdesk/PSCHelpdesk/Services/PluginService.cs index d05a596..16240af 100644 --- a/PSCHelpdesk/PSCHelpdesk/Services/PluginService.cs +++ b/PSCHelpdesk/PSCHelpdesk/Services/PluginService.cs @@ -83,8 +83,8 @@ public class PluginService if (!this.loadedPlugins.ContainsKey(pluginName)) { loadedPlugins.Add(plugin.GetName(), plugin); - var list = await plugin.addMenu(); - menuService.AddMenuItem(list.First()); + plugin.addMenu(); + var t = plugin.load(); appService.AppIsStarted(); } } diff --git a/PSCHelpdesk/PSCHelpdesk/Startup.cs b/PSCHelpdesk/PSCHelpdesk/Startup.cs index ee5078f..cc15f6d 100644 --- a/PSCHelpdesk/PSCHelpdesk/Startup.cs +++ b/PSCHelpdesk/PSCHelpdesk/Startup.cs @@ -14,12 +14,13 @@ class Startup var menuService = new MenuService(); var te = new ServiceCollection() + .AddPrise() .AddSingleton() .AddSingleton(menuService) .AddSingleton(new TestService()) .AddSingleton() - .AddTransient() - .AddPrise(); + .AddTransient(); + var ls = te.BuildServiceProvider(); diff --git a/Shared/Menu/Item.cs b/Shared/Menu/Item.cs index a1765ec..e672b29 100644 --- a/Shared/Menu/Item.cs +++ b/Shared/Menu/Item.cs @@ -11,5 +11,7 @@ public class Item public string Header { get; set; } public ICommand Command { get; set; } public object CommandParameter { get; set; } + + public UserControl GetView { get; set; } public IList Items { get; set; } } \ No newline at end of file diff --git a/Shared/Plugin/Contract.cs b/Shared/Plugin/Contract.cs index 825dc31..19554cb 100644 --- a/Shared/Plugin/Contract.cs +++ b/Shared/Plugin/Contract.cs @@ -8,6 +8,8 @@ public interface Contract { string GetName(); - Task> addMenu(); + void addMenu(); + + UserControl load(); } \ No newline at end of file diff --git a/Vendor/Prise.ReverseProxy/Prise.ReverseProxy.csproj b/Vendor/Prise.ReverseProxy/Prise.ReverseProxy.csproj index b8e3d16..68c989c 100644 --- a/Vendor/Prise.ReverseProxy/Prise.ReverseProxy.csproj +++ b/Vendor/Prise.ReverseProxy/Prise.ReverseProxy.csproj @@ -24,6 +24,7 @@ + diff --git a/Vendor/Prise/Infrastructure/JsonSerializerParameterConverter.cs b/Vendor/Prise/Infrastructure/JsonSerializerParameterConverter.cs index f52bd49..7f42dab 100644 --- a/Vendor/Prise/Infrastructure/JsonSerializerParameterConverter.cs +++ b/Vendor/Prise/Infrastructure/JsonSerializerParameterConverter.cs @@ -1,5 +1,5 @@ using System; -using System.Text.Json; +using Newtonsoft.Json; using Prise.Proxy; namespace Prise.Infrastructure @@ -8,8 +8,8 @@ namespace Prise.Infrastructure { public object ConvertToRemoteType(Type localType, object value) { - var json = JsonSerializer.Serialize(value); - return JsonSerializer.Deserialize(json, localType); + var json = JsonConvert.SerializeObject(value); + return JsonConvert.DeserializeObject(json, localType); } protected bool disposed = false; diff --git a/Vendor/Prise/Infrastructure/JsonSerializerResultConverter.cs b/Vendor/Prise/Infrastructure/JsonSerializerResultConverter.cs index 3debda3..f3647e2 100644 --- a/Vendor/Prise/Infrastructure/JsonSerializerResultConverter.cs +++ b/Vendor/Prise/Infrastructure/JsonSerializerResultConverter.cs @@ -1,5 +1,5 @@ using System; -using System.Text.Json; +using Newtonsoft.Json; using Prise.Proxy; namespace Prise.Infrastructure @@ -17,9 +17,9 @@ namespace Prise.Infrastructure resultType = localType.GenericTypeArguments[0]; } - return JsonSerializer.Deserialize( - JsonSerializer.Serialize(value), // First, serialize the object into a string - resultType); // Second, deserialize it using the correct type + return value; + var ser = JsonConvert.SerializeObject(value); + return JsonConvert.DeserializeObject(ser, localType); } } } \ No newline at end of file diff --git a/Vendor/Prise/Prise.csproj b/Vendor/Prise/Prise.csproj index c34a6c3..4af2ce0 100644 --- a/Vendor/Prise/Prise.csproj +++ b/Vendor/Prise/Prise.csproj @@ -39,6 +39,7 @@ +