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 @@
+
-
+
-
-
-
-
+
+
+
+
+
+
@@ -36,24 +39,16 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
+
+
+
+
@@ -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 @@
+