Backup
This commit is contained in:
parent
580edfb232
commit
6434ec06e1
@ -9,7 +9,7 @@
|
|||||||
<entry key="PSCHelpdesk/PSCHelpdesk/App.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
|
<entry key="PSCHelpdesk/PSCHelpdesk/App.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
|
||||||
<entry key="PSCHelpdesk/PSCHelpdesk/Views/ContentDisplay.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
|
<entry key="PSCHelpdesk/PSCHelpdesk/Views/ContentDisplay.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
|
||||||
<entry key="PSCHelpdesk/PSCHelpdesk/Views/ContentDisplayView.axaml" value="PSCHelpdesk/PSCHelpdesk.Browser/PSCHelpdesk.Browser.csproj" />
|
<entry key="PSCHelpdesk/PSCHelpdesk/Views/ContentDisplayView.axaml" value="PSCHelpdesk/PSCHelpdesk.Browser/PSCHelpdesk.Browser.csproj" />
|
||||||
<entry key="PSCHelpdesk/PSCHelpdesk/Views/MainView.axaml" value="PSCHelpdesk/PSCHelpdesk.Browser/PSCHelpdesk.Browser.csproj" />
|
<entry key="PSCHelpdesk/PSCHelpdesk/Views/MainView.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
|
||||||
<entry key="PSCHelpdesk/PSCHelpdesk/Views/MainWindow.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
|
<entry key="PSCHelpdesk/PSCHelpdesk/Views/MainWindow.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
|
||||||
<entry key="PSCHelpdesk/PSCHelpdesk/Views/MenuItem.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
|
<entry key="PSCHelpdesk/PSCHelpdesk/Views/MenuItem.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
|
||||||
<entry key="PSCHelpdesk/PSCHelpdesk/Views/PluginListView.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
|
<entry key="PSCHelpdesk/PSCHelpdesk/Views/PluginListView.axaml" value="PSCHelpdesk/PSCHelpdesk.Desktop/PSCHelpdesk.Desktop.csproj" />
|
||||||
|
|||||||
@ -11,29 +11,21 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="95257dc5-08bd-4c50-8726-85956b3c2c92" name="Changes" comment="">
|
<list default="true" id="95257dc5-08bd-4c50-8726-85956b3c2c92" name="Changes" comment="">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/.idea.PSCHelpdesk/.idea/.name" beforeDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/.idea.PSCHelpdesk/.idea/avalonia.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.PSCHelpdesk/.idea/avalonia.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/.idea.PSCHelpdesk/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.PSCHelpdesk/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/.idea.PSCHelpdesk/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.PSCHelpdesk/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/HetznerServer/HetznerServer.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/HetznerServer.csproj" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/HetznerServer/HetznerServer.cs" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/HetznerServer.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/HetznerServer/Models/Settings.cs" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/Models/Settings.cs" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/HetznerServer/ViewModels/HetznerSettingsViewModel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/ViewModels/HetznerSettingsViewModel.cs" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/HetznerServer/ViewModels/ServerViewModel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/ViewModels/ServerViewModel.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/HetznerServer/ViewModels/ServerViewModel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/ViewModels/ServerViewModel.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/HetznerServer/Views/HetznerSettingsView.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/Views/HetznerSettingsView.axaml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/HetznerServer/Views/HetznerSettingsView.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/Views/HetznerSettingsView.axaml.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/PSCHelpdesk.sln.DotSettings.user" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk.sln.DotSettings.user" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/PSCHelpdesk.sln.DotSettings.user" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk.sln.DotSettings.user" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Models/LocalSetting.cs" beforeDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/PSCHelpdesk.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/PSCHelpdesk.csproj" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/PSCHelpdesk.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/PSCHelpdesk.csproj" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Services/PluginService.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Services/PluginService.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Services/PluginService.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Services/PluginService.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Startup.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Startup.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewLocator.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewLocator.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/MainWindowViewModel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/MainWindowViewModel.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/MainWindowViewModel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/MainWindowViewModel.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/SettingsGlobalViewModel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/SettingsGlobalViewModel.cs" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/SettingsViewModel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/ViewModels/SettingsViewModel.cs" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/ContentDisplay.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/ContentDisplay.axaml" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/ContentDisplay.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/ContentDisplay.axaml.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/ContentDisplay.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/ContentDisplay.axaml.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/MainWindow.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/MainWindow.axaml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/MainWindow.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/MainWindow.axaml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/SettingsGlobalView.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/SettingsGlobalView.axaml.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/MainWindow.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/MainWindow.axaml.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/SettingsView.axaml" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/SettingsView.axaml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Shared/Plugin/Contract.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Shared/Plugin/Contract.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/SettingsView.axaml.cs" beforeDir="false" afterPath="$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/SettingsView.axaml.cs" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Shared/Shared.csproj" beforeDir="false" afterPath="$PROJECT_DIR$/Shared/Shared.csproj" afterDir="false" />
|
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
@ -47,13 +39,21 @@
|
|||||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
</component>
|
</component>
|
||||||
<component name="HighlightingSettingsPerFile">
|
<component name="HighlightingSettingsPerFile">
|
||||||
|
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/1b81cb3be224213a6a73519b6e340a628d9a1fb8629c351a186a26f6376669/List.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
|
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/27be5d106a789638721745a2a46f9cb0f7a39905117d644638b6e0d56261be/ReplaySubject.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/2e6883f773fb7c69a15db509adac9a0c068e4ca54fa119e835fd2324311c3b/Ioc.cs" root0="FORCE_HIGHLIGHTING" />
|
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/2e6883f773fb7c69a15db509adac9a0c068e4ca54fa119e835fd2324311c3b/Ioc.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/9cf5f68d759deefc91b9c48c5ac3dd27708bb7dc38d0c485661fff5ce15b82/SafeFileHandle.Unix.cs" root0="FORCE_HIGHLIGHTING" />
|
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/3c92637ae2e83da0a63791071c41eae291d594156062866d8621b7ed7245c/CastHelpers.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
|
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/5cde391207de75962d7bacb899ca2bd3985c86911b152d185b58999a422bf0/Type.CoreCLR.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/9d4f4ac7db6d2c5d183ab2d92602280ed4349fd6e6a1b6313546b3d01fdab5/ServiceProvider.cs" root0="FORCE_HIGHLIGHTING" />
|
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/9d4f4ac7db6d2c5d183ab2d92602280ed4349fd6e6a1b6313546b3d01fdab5/ServiceProvider.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/e6a62e457eaef3f1f68c2a3e51b1b1351d3f2a3cef1a7379c6248f38bb8d64e8/File.cs" root0="FORCE_HIGHLIGHTING" />
|
<setting file="file://$APPLICATION_CONFIG_DIR$/resharper-host/SourcesCache/c7102cd0ffb8973777e61b1942c3fffac7e14016a511d055c3adf73ff91748/ThrowHelper.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
<setting file="file://$PROJECT_DIR$/HetznerServer/ViewModels/ServerViewModel.cs" root0="FORCE_HIGHLIGHTING" />
|
<setting file="file://$PROJECT_DIR$/HetznerServer/ViewModels/ServerViewModel.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
<setting file="file://$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml" root0="FORCE_HIGHLIGHTING" />
|
<setting file="file://$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml" root0="FORCE_HIGHLIGHTING" />
|
||||||
<setting file="file://$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml.cs" root0="FORCE_HIGHLIGHTING" />
|
<setting file="file://$PROJECT_DIR$/HetznerServer/Views/ServerView.axaml.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
|
<setting file="mock://C:/Users/info/RiderProjects/pschelpdesk/PSCHelpdesk/PSCHelpdesk/ViewModels/SettingsViewModel.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
|
<setting file="mock://C:/Users/info/RiderProjects/pschelpdesk/PSCHelpdesk/PSCHelpdesk/ViewModels/SettingsViewModel.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
|
<setting file="mock://C:/Users/info/RiderProjects/pschelpdesk/PSCHelpdesk/PSCHelpdesk/ViewModels/SettingsViewModel.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
|
<setting file="mock://C:/Users/info/RiderProjects/pschelpdesk/PSCHelpdesk/PSCHelpdesk/ViewModels/SettingsViewModel.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
|
<setting file="mock://C:/Users/info/RiderProjects/pschelpdesk/PSCHelpdesk/PSCHelpdesk/ViewModels/SettingsViewModel.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
<setting file="file://$PROJECT_DIR$/Vendor/Prise/AssemblyScanning/DefaultAssemblyResolver.cs" root0="FORCE_HIGHLIGHTING" />
|
<setting file="file://$PROJECT_DIR$/Vendor/Prise/AssemblyScanning/DefaultAssemblyResolver.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
<setting file="file://$PROJECT_DIR$/Vendor/Prise/DefaultPluginLoader.cs" root0="SKIP_HIGHLIGHTING" />
|
<setting file="file://$PROJECT_DIR$/Vendor/Prise/DefaultPluginLoader.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
<setting file="file://$PROJECT_DIR$/Vendor/Prise/DependencyInjection/ServiceCollectionExtensions.cs" root0="FORCE_HIGHLIGHTING" />
|
<setting file="file://$PROJECT_DIR$/Vendor/Prise/DependencyInjection/ServiceCollectionExtensions.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
@ -82,7 +82,7 @@
|
|||||||
<component name="PropertiesComponent"><![CDATA[{
|
<component name="PropertiesComponent"><![CDATA[{
|
||||||
"keyToString": {
|
"keyToString": {
|
||||||
".NET Project.PSCHelpdesk.Desktop ohne plugin.executor": "Run",
|
".NET Project.PSCHelpdesk.Desktop ohne plugin.executor": "Run",
|
||||||
".NET Project.PSCHelpdesk.Desktop.executor": "Run",
|
".NET Project.PSCHelpdesk.Desktop.executor": "Debug",
|
||||||
"Publish to folder.Build HetznerServer Plugin Debug.executor": "Run",
|
"Publish to folder.Build HetznerServer Plugin Debug.executor": "Run",
|
||||||
"Publish to folder.Publish HetznerServer to folder.executor": "Run",
|
"Publish to folder.Publish HetznerServer to folder.executor": "Run",
|
||||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
@ -276,17 +276,43 @@
|
|||||||
<option name="timeStamp" value="159" />
|
<option name="timeStamp" value="159" />
|
||||||
</line-breakpoint>
|
</line-breakpoint>
|
||||||
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
||||||
<url>file://$PROJECT_DIR$/HetznerServer/ViewModels/ServerViewModel.cs</url>
|
<url>file://$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/ContentDisplay.axaml.cs</url>
|
||||||
<line>77</line>
|
<line>91</line>
|
||||||
<properties documentPath="$PROJECT_DIR$/HetznerServer/ViewModels/ServerViewModel.cs" containingFunctionPresentation="Method 'OpenSSH'">
|
<properties documentPath="C:\Users\info\RiderProjects\pschelpdesk\PSCHelpdesk\PSCHelpdesk\Views\ContentDisplay.axaml.cs" containingFunctionPresentation="Method 'SelectionChanged'">
|
||||||
<startOffsets>
|
<startOffsets>
|
||||||
<option value="2296" />
|
<option value="2822" />
|
||||||
</startOffsets>
|
</startOffsets>
|
||||||
<endOffsets>
|
<endOffsets>
|
||||||
<option value="2443" />
|
<option value="2929" />
|
||||||
</endOffsets>
|
</endOffsets>
|
||||||
</properties>
|
</properties>
|
||||||
<option name="timeStamp" value="160" />
|
<option name="timeStamp" value="167" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
||||||
|
<url>file://$PROJECT_DIR$/PSCHelpdesk/PSCHelpdesk/Views/ContentDisplay.axaml.cs</url>
|
||||||
|
<line>80</line>
|
||||||
|
<properties documentPath="C:\Users\info\RiderProjects\pschelpdesk\PSCHelpdesk\PSCHelpdesk\Views\ContentDisplay.axaml.cs" containingFunctionPresentation="Method 'SelectionChanged'">
|
||||||
|
<startOffsets>
|
||||||
|
<option value="2404" />
|
||||||
|
</startOffsets>
|
||||||
|
<endOffsets>
|
||||||
|
<option value="2464" />
|
||||||
|
</endOffsets>
|
||||||
|
</properties>
|
||||||
|
<option name="timeStamp" value="168" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
||||||
|
<url>file://$PROJECT_DIR$/HetznerServer/ViewModels/ServerViewModel.cs</url>
|
||||||
|
<line>82</line>
|
||||||
|
<properties documentPath="C:\Users\info\RiderProjects\pschelpdesk\HetznerServer\ViewModels\ServerViewModel.cs" containingFunctionPresentation="Method 'RunTheThing'">
|
||||||
|
<startOffsets>
|
||||||
|
<option value="2757" />
|
||||||
|
</startOffsets>
|
||||||
|
<endOffsets>
|
||||||
|
<option value="2904" />
|
||||||
|
</endOffsets>
|
||||||
|
</properties>
|
||||||
|
<option name="timeStamp" value="177" />
|
||||||
</line-breakpoint>
|
</line-breakpoint>
|
||||||
</breakpoints>
|
</breakpoints>
|
||||||
</breakpoint-manager>
|
</breakpoint-manager>
|
||||||
|
|||||||
6
HetznerServer/DataTemplate/ServerView.axaml
Normal file
6
HetznerServer/DataTemplate/ServerView.axaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<ResourceDictionary xmlns="https://github.com/avaloniaui"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
|
<DataTemplate x:Key="AuthenticationViewDataTemplate">
|
||||||
|
<TextBlock Text="TeST"></TextBlock>
|
||||||
|
</DataTemplate>
|
||||||
|
</ResourceDictionary>
|
||||||
9
HetznerServer/DataTemplate/ServerView.axaml.cs
Normal file
9
HetznerServer/DataTemplate/ServerView.axaml.cs
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
using Avalonia;
|
||||||
|
using Avalonia.Controls;
|
||||||
|
using Avalonia.Controls.Primitives;
|
||||||
|
|
||||||
|
namespace PSCHelpdesk.Plugins.HetznerServer.DataTemplate;
|
||||||
|
|
||||||
|
public class ServerView : TemplatedControl
|
||||||
|
{
|
||||||
|
}
|
||||||
@ -37,9 +37,9 @@ public class HetznerServer : Contract
|
|||||||
settingsService.AddSetting(hetznerSettings);
|
settingsService.AddSetting(hetznerSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<UserControl> LoadViews()
|
public List<Type> LoadViews()
|
||||||
{
|
{
|
||||||
return [new ServerView(), new HetznerSettingsView()];
|
return [typeof(ServerView), typeof(HetznerSettingsView)];
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -1,5 +1,6 @@
|
|||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.Reactive;
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using CommunityToolkit.Mvvm.DependencyInjection;
|
using CommunityToolkit.Mvvm.DependencyInjection;
|
||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
@ -9,14 +10,20 @@ using PSCHelpdesk.Plugins.HetznerServer.Views;
|
|||||||
using PSCHelpdesk.Shared.Service;
|
using PSCHelpdesk.Shared.Service;
|
||||||
using PSCHelpdesk.Shared.Setting;
|
using PSCHelpdesk.Shared.Setting;
|
||||||
using PSCHelpdesk.Shared.ViewModels;
|
using PSCHelpdesk.Shared.ViewModels;
|
||||||
|
using ReactiveUI;
|
||||||
|
|
||||||
namespace PSCHelpdesk.Plugins.HetznerServer.ViewModels;
|
namespace PSCHelpdesk.Plugins.HetznerServer.ViewModels;
|
||||||
|
|
||||||
public partial class ServerViewModel : ViewModelBase, IViewModelBase
|
public partial class ServerViewModel : ViewModelBase, IViewModelBase
|
||||||
{
|
{
|
||||||
|
public ReactiveCommand<Server, Unit> OpenSSH { get; }
|
||||||
|
public ReactiveCommand<SelectionChangedEventArgs, Unit> SelectionChanged { get; }
|
||||||
|
|
||||||
private SettingsManager _settingsManager;
|
private SettingsManager _settingsManager;
|
||||||
public ServerViewModel()
|
public ServerViewModel()
|
||||||
{
|
{
|
||||||
|
OpenSSH = ReactiveCommand.Create<Server>(openSSH);
|
||||||
|
SelectionChanged = ReactiveCommand.Create<SelectionChangedEventArgs>(selectionChanged);
|
||||||
Server = new ObservableCollection<Server>();
|
Server = new ObservableCollection<Server>();
|
||||||
SelectedServer = new Server(1,"","","","","");
|
SelectedServer = new Server(1,"","","","","");
|
||||||
_settingsManager = (SettingsManager)Ioc.Default.GetService<ISettingsManager>();
|
_settingsManager = (SettingsManager)Ioc.Default.GetService<ISettingsManager>();
|
||||||
@ -24,7 +31,7 @@ public partial class ServerViewModel : ViewModelBase, IViewModelBase
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool _isPagePaneOpen = false;
|
private bool _isPagePaneOpen = true;
|
||||||
public bool IsPagePaneOpen
|
public bool IsPagePaneOpen
|
||||||
{
|
{
|
||||||
get => _isPagePaneOpen;
|
get => _isPagePaneOpen;
|
||||||
@ -49,37 +56,34 @@ public partial class ServerViewModel : ViewModelBase, IViewModelBase
|
|||||||
{
|
{
|
||||||
var settings = new Settings();
|
var settings = new Settings();
|
||||||
_settingsManager.LoadPluginSettings("HetznerSettings", settings);
|
_settingsManager.LoadPluginSettings("HetznerSettings", settings);
|
||||||
HetznerCloudClient hetznerCloudClient = new HetznerCloudClient(settings.HetznerApiKey);
|
if (settings.HetznerApiKey != "")
|
||||||
|
|
||||||
List<HetznerCloudApi.Object.Server.Server> list = await hetznerCloudClient.Server.Get();
|
|
||||||
foreach (var server in list)
|
|
||||||
{
|
{
|
||||||
Server.Add(new Server(server.Id, server.Name, server.ServerType.Name, server.Status, server.PublicNet.Ipv4.Ip, server.PublicNet.Ipv6.Ip));
|
HetznerCloudClient hetznerCloudClient = new HetznerCloudClient(settings.HetznerApiKey);
|
||||||
|
|
||||||
|
List<HetznerCloudApi.Object.Server.Server> list = await hetznerCloudClient.Server.Get();
|
||||||
|
foreach (var server in list)
|
||||||
|
{
|
||||||
|
Server.Add(new Server(server.Id, server.Name, server.ServerType.Name, server.Status,
|
||||||
|
server.PublicNet.Ipv4.Ip, server.PublicNet.Ipv6.Ip));
|
||||||
|
}
|
||||||
|
|
||||||
|
SelectedServer = Server[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
SelectedServer = Server[0];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[RelayCommand]
|
|
||||||
public void ShowServerDetails(Server server)
|
|
||||||
|
void openSSH(Server server)
|
||||||
{
|
{
|
||||||
|
//Process.Start(_settingsManager.CoreSettings.SSHClientExecutable,string.Format(_settingsManager.CoreSettings.SSHClientExecutableArgs, server.Ipv4));
|
||||||
}
|
}
|
||||||
|
|
||||||
[RelayCommand]
|
public void RunTheThing(Server server)
|
||||||
public void OpenSCP(Server server)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
[RelayCommand]
|
|
||||||
public void OpenSSH(Server server)
|
|
||||||
{
|
{
|
||||||
Process.Start(_settingsManager.CoreSettings.SSHClientExecutable,string.Format(_settingsManager.CoreSettings.SSHClientExecutableArgs, server.Ipv4));
|
Process.Start(_settingsManager.CoreSettings.SSHClientExecutable,string.Format(_settingsManager.CoreSettings.SSHClientExecutableArgs, server.Ipv4));
|
||||||
}
|
}
|
||||||
|
|
||||||
[RelayCommand]
|
void selectionChanged(SelectionChangedEventArgs args)
|
||||||
public void SelectionChanged(SelectionChangedEventArgs args)
|
|
||||||
{
|
{
|
||||||
this.SelectedServer = (args.Source as DataGrid).SelectedItem as Server;
|
this.SelectedServer = (args.Source as DataGrid).SelectedItem as Server;
|
||||||
IsPagePaneOpen = true;
|
IsPagePaneOpen = true;
|
||||||
|
|||||||
@ -5,21 +5,22 @@
|
|||||||
xmlns:vm="clr-namespace:PSCHelpdesk.Plugins.HetznerServer.ViewModels"
|
xmlns:vm="clr-namespace:PSCHelpdesk.Plugins.HetznerServer.ViewModels"
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="PSCHelpdesk.Plugins.HetznerServer.Views.ServerView"
|
x:Class="PSCHelpdesk.Plugins.HetznerServer.Views.ServerView"
|
||||||
x:DataType="vm:ServerViewModel">
|
x:DataType="vm:ServerViewModel"
|
||||||
|
Name="Servers">
|
||||||
<Design.DataContext>
|
<Design.DataContext>
|
||||||
<vm:ServerViewModel></vm:ServerViewModel>
|
<vm:ServerViewModel></vm:ServerViewModel>
|
||||||
</Design.DataContext>
|
</Design.DataContext>
|
||||||
<SplitView IsPaneOpen="{Binding IsPagePaneOpen }"
|
<SplitView IsPaneOpen="{Binding IsPagePaneOpen }"
|
||||||
DisplayMode="Inline"
|
DisplayMode="Inline"
|
||||||
OpenPaneLength="300" PanePlacement="Right">
|
OpenPaneLength="300" PanePlacement="Right">
|
||||||
<DataGrid Margin="20" ItemsSource="{Binding Server}"
|
<DataGrid Margin="20" ItemsSource="{Binding Server}"
|
||||||
AutoGenerateColumns="False" IsReadOnly="True"
|
AutoGenerateColumns="False" IsReadOnly="True"
|
||||||
GridLinesVisibility="All"
|
GridLinesVisibility="All"
|
||||||
BorderThickness="1" BorderBrush="Gray"
|
BorderThickness="1" BorderBrush="Gray"
|
||||||
Name="ServerTable">
|
x:Name="ServerTable">
|
||||||
<Interaction.Behaviors>
|
<Interaction.Behaviors>
|
||||||
<EventTriggerBehavior EventName="SelectionChanged">
|
<EventTriggerBehavior EventName="SelectionChanged">
|
||||||
<InvokeCommandAction Command="{Binding #ServerTable.((vm:ServerViewModel)DataContext).SelectionChanged}" PassEventArgsToCommand="true"></InvokeCommandAction>
|
<InvokeCommandAction Command="{Binding SelectionChanged}" PassEventArgsToCommand="true"></InvokeCommandAction>
|
||||||
</EventTriggerBehavior>
|
</EventTriggerBehavior>
|
||||||
</Interaction.Behaviors>
|
</Interaction.Behaviors>
|
||||||
<DataGrid.Columns>
|
<DataGrid.Columns>
|
||||||
@ -36,7 +37,7 @@
|
|||||||
HorizontalAlignment="Center"
|
HorizontalAlignment="Center"
|
||||||
HorizontalContentAlignment="Center"
|
HorizontalContentAlignment="Center"
|
||||||
Background="#232323"
|
Background="#232323"
|
||||||
Command="{Binding #ServerTable.((vm:ServerViewModel)DataContext).ShowServerDetails}"
|
Command="{Binding ShowServerDetails}"
|
||||||
CommandParameter="{Binding .}"
|
CommandParameter="{Binding .}"
|
||||||
Content="View"
|
Content="View"
|
||||||
Foreground="White" />
|
Foreground="White" />
|
||||||
@ -50,7 +51,7 @@
|
|||||||
HorizontalAlignment="Center"
|
HorizontalAlignment="Center"
|
||||||
HorizontalContentAlignment="Center"
|
HorizontalContentAlignment="Center"
|
||||||
Background="#232323"
|
Background="#232323"
|
||||||
Command="{Binding #ServerTable.((vm:ServerViewModel)DataContext).OpenSSH}"
|
Command="{Binding Path=$parent[DataGrid].((vm:ServerViewModel)DataContext).OpenSSH}"
|
||||||
CommandParameter="{Binding .}"
|
CommandParameter="{Binding .}"
|
||||||
Content="Open SSH"
|
Content="Open SSH"
|
||||||
Foreground="White" />
|
Foreground="White" />
|
||||||
@ -64,7 +65,7 @@
|
|||||||
HorizontalAlignment="Center"
|
HorizontalAlignment="Center"
|
||||||
HorizontalContentAlignment="Center"
|
HorizontalContentAlignment="Center"
|
||||||
Background="#232323"
|
Background="#232323"
|
||||||
Command="{Binding #ServerTable.((vm:ServerViewModel)DataContext).OpenSCP}"
|
Command="{Binding #ServerTable.((vm:ServerViewModel)DataContext).OpenSSH}"
|
||||||
CommandParameter="{Binding .}"
|
CommandParameter="{Binding .}"
|
||||||
Content="Open SCP"
|
Content="Open SCP"
|
||||||
Foreground="White" />
|
Foreground="White" />
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
|
using PSCHelpdesk.Plugins.HetznerServer.ViewModels;
|
||||||
|
|
||||||
namespace PSCHelpdesk.Plugins.HetznerServer.Views;
|
namespace PSCHelpdesk.Plugins.HetznerServer.Views;
|
||||||
|
|
||||||
@ -7,5 +8,7 @@ public partial class ServerView : UserControl
|
|||||||
public ServerView()
|
public ServerView()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
this.DataContext = new ServerViewModel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -5,6 +5,7 @@
|
|||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAsyncVoidMethodBuilder_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fe91a2750b979a5265711aaa020b980ebe7c5168bdf221ad2e32d16e3f74b8382_003FAsyncVoidMethodBuilder_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAsyncVoidMethodBuilder_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fe91a2750b979a5265711aaa020b980ebe7c5168bdf221ad2e32d16e3f74b8382_003FAsyncVoidMethodBuilder_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAttribute_002ECoreCLR_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F733ec677d6c51f97541ef76ab82bf19a08e02c42b0f78d439f4b3b24dfdbb_003FAttribute_002ECoreCLR_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAttribute_002ECoreCLR_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F733ec677d6c51f97541ef76ab82bf19a08e02c42b0f78d439f4b3b24dfdbb_003FAttribute_002ECoreCLR_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAvaloniaObject_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fa119bbffad50bc743b255772611ceba491d63fce14a64e86c71a607766c5b0_003FAvaloniaObject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAvaloniaObject_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fa119bbffad50bc743b255772611ceba491d63fce14a64e86c71a607766c5b0_003FAvaloniaObject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACastHelpers_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F3c92637ae2e83da0a63791071c41eae291d594156062866d8621b7ed7245c_003FCastHelpers_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACastHelpers_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F45c62c1f9af1eb2248ec17220752868b3b6728095879e849b6ea733ef7f5ff_003FCastHelpers_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ACastHelpers_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F45c62c1f9af1eb2248ec17220752868b3b6728095879e849b6ea733ef7f5ff_003FCastHelpers_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AChar_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F711f7792fa6122388fd055dc53371e134cb0064e6918a15d025c8778db5b73_003FChar_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AChar_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F711f7792fa6122388fd055dc53371e134cb0064e6918a15d025c8778db5b73_003FChar_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AClrPropertyInfo_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F2c86fa7dbfba747d28348dc8a7bfd0e9d9fe887ed61499b2417e8ee3ec5888_003FClrPropertyInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AClrPropertyInfo_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F2c86fa7dbfba747d28348dc8a7bfd0e9d9fe887ed61499b2417e8ee3ec5888_003FClrPropertyInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
@ -33,6 +34,7 @@
|
|||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003APublicNet_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F95e899f2b13d4189874af98ec00443321e400_003F0d_003F00fcbad0_003FPublicNet_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003APublicNet_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F95e899f2b13d4189874af98ec00443321e400_003F0d_003F00fcbad0_003FPublicNet_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AReactiveCommandBase_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F9d493cae194a42808b62a282d8d797b4ef18a9435baa6da7a73bee8e66ca1_003FReactiveCommandBase_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AReactiveCommandBase_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F9d493cae194a42808b62a282d8d797b4ef18a9435baa6da7a73bee8e66ca1_003FReactiveCommandBase_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AReadOnlySpan_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fd0d96f40fdd9bc395fad59e4a8a6539e4eecce4865809ef4be1a473f911eceaa_003FReadOnlySpan_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AReadOnlySpan_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fd0d96f40fdd9bc395fad59e4a8a6539e4eecce4865809ef4be1a473f911eceaa_003FReadOnlySpan_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AReplaySubject_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F27be5d106a789638721745a2a46f9cb0f7a39905117d644638b6e0d56261be_003FReplaySubject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AReplaySubject_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F27be5d106a789638721745a2a46f9cb0f7a39905117d644638b6e0d56261be_003FReplaySubject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AReplaySubject_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F27be5d106a789638721745a2a46f9cb0f7a39905117d644638b6e0d56261be_003FReplaySubject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARuntimeHelpers_002ECoreCLR_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F5ef9e37e2f99ef2688a1586afed1cff6eef912a11aa9b20a56943a255a6e6b_003FRuntimeHelpers_002ECoreCLR_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARuntimeHelpers_002ECoreCLR_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F5ef9e37e2f99ef2688a1586afed1cff6eef912a11aa9b20a56943a255a6e6b_003FRuntimeHelpers_002ECoreCLR_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARuntimeType_002ECoreCLR_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fad1d58b8dd22123dfae3f2cf5d8b199992465c9c344d032f93a826d8e5539ff_003FRuntimeType_002ECoreCLR_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARuntimeType_002ECoreCLR_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fad1d58b8dd22123dfae3f2cf5d8b199992465c9c344d032f93a826d8e5539ff_003FRuntimeType_002ECoreCLR_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
|||||||
@ -49,6 +49,6 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Models\" />
|
<Folder Include="Model\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using CommunityToolkit.Mvvm.DependencyInjection;
|
using CommunityToolkit.Mvvm.DependencyInjection;
|
||||||
@ -19,7 +20,7 @@ public class PluginService
|
|||||||
private List<string> toLoadPlugins = new List<string>();
|
private List<string> toLoadPlugins = new List<string>();
|
||||||
private Dictionary<string, Contract> loadedPlugins = new Dictionary<string, Contract>();
|
private Dictionary<string, Contract> loadedPlugins = new Dictionary<string, Contract>();
|
||||||
private Dictionary<string, string> foundPlugins = new Dictionary<string, string>();
|
private Dictionary<string, string> foundPlugins = new Dictionary<string, string>();
|
||||||
private Dictionary<string, UserControl> controls = new Dictionary<string, UserControl>();
|
private Dictionary<string, Type> controls = new Dictionary<string, Type>();
|
||||||
|
|
||||||
public PluginService()
|
public PluginService()
|
||||||
{
|
{
|
||||||
@ -94,7 +95,7 @@ public class PluginService
|
|||||||
var items = plugin.LoadViews();
|
var items = plugin.LoadViews();
|
||||||
foreach (var item in items)
|
foreach (var item in items)
|
||||||
{
|
{
|
||||||
this.controls.Add(item.GetType().FullName, item);
|
this.controls.Add(item.FullName, item);
|
||||||
}
|
}
|
||||||
|
|
||||||
appService.AppIsStarted();
|
appService.AppIsStarted();
|
||||||
@ -104,7 +105,7 @@ public class PluginService
|
|||||||
|
|
||||||
public UserControl GetView(string viewName)
|
public UserControl GetView(string viewName)
|
||||||
{
|
{
|
||||||
return this.controls[viewName];
|
return (UserControl)Activator.CreateInstance(this.controls[viewName]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool ViewExists(string viewName)
|
public bool ViewExists(string viewName)
|
||||||
|
|||||||
@ -27,7 +27,8 @@ public class ViewLocator : IDataTemplate
|
|||||||
|
|
||||||
if (_pluginService.ViewExists(name))
|
if (_pluginService.ViewExists(name))
|
||||||
{
|
{
|
||||||
return _pluginService.GetView(name);
|
var v = _pluginService.GetView(name);
|
||||||
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type != null)
|
if (type != null)
|
||||||
|
|||||||
@ -1,7 +1,9 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reactive;
|
using System.Reactive;
|
||||||
|
using Avalonia.Controls;
|
||||||
using CommunityToolkit.Mvvm.DependencyInjection;
|
using CommunityToolkit.Mvvm.DependencyInjection;
|
||||||
using PSCHelpdesk.Services;
|
using PSCHelpdesk.Services;
|
||||||
using PSCHelpdesk.Shared.Menu;
|
using PSCHelpdesk.Shared.Menu;
|
||||||
@ -11,38 +13,34 @@ using ReactiveUI;
|
|||||||
|
|
||||||
namespace PSCHelpdesk.ViewModels;
|
namespace PSCHelpdesk.ViewModels;
|
||||||
|
|
||||||
public class MainWindowViewModel : ViewModelBase
|
public class MainWindowViewModel : ViewModelBase, IViewModelBase
|
||||||
{
|
{
|
||||||
private MenuService _menuService;
|
private MenuService MenuService;
|
||||||
public ReactiveCommand<string, Unit> ClickMenu { get; }
|
public ReactiveCommand<string, Unit> ClickMenu { get; }
|
||||||
public MenuService MenuService
|
private ObservableCollection<TabItemViewModel> _tabItems;
|
||||||
|
|
||||||
|
public ObservableCollection<TabItemViewModel> TabItems
|
||||||
{
|
{
|
||||||
get => this._menuService;
|
get => _tabItems;
|
||||||
private set => SetAndRaisePropertyChanged(ref this._menuService, value);
|
set => SetAndRaisePropertyChanged(ref _tabItems, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private object _contentDisplay;
|
private List<Item> _menuItems;
|
||||||
|
public List<Item> MenuItems
|
||||||
private Item _selectedItem;
|
|
||||||
public Item SelectedItem
|
|
||||||
{
|
{
|
||||||
get => _selectedItem;
|
get => _menuItems;
|
||||||
set => SetAndRaisePropertyChanged(ref _selectedItem, value);
|
set => SetAndRaisePropertyChanged(ref _menuItems, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public object ContentDisplay
|
|
||||||
{
|
|
||||||
get => _contentDisplay;
|
|
||||||
set => SetAndRaisePropertyChanged(ref _contentDisplay, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public MainWindowViewModel()
|
public MainWindowViewModel()
|
||||||
{
|
{
|
||||||
ClickMenu = ReactiveCommand.Create<string>(SelectMenu);
|
|
||||||
this.MenuItems = new List<Item>();
|
|
||||||
Startup.RegisterServices();
|
Startup.RegisterServices();
|
||||||
this.MenuService = (MenuService)Ioc.Default.GetService(typeof(IMenuService));
|
ClickMenu = ReactiveCommand.Create<string>(SelectMenu);
|
||||||
this.MenuService.MenuChanged += delegate(object? sender, EventArgs args)
|
TabItems = new ObservableCollection<TabItemViewModel>();
|
||||||
|
this.MenuItems = new List<Item>();
|
||||||
|
MenuService = (MenuService)Ioc.Default.GetService(typeof(IMenuService));
|
||||||
|
MenuService.MenuChanged += delegate(object? sender, EventArgs args)
|
||||||
{
|
{
|
||||||
foreach (var menuServiceMenuItem in MenuService.MenuItems)
|
foreach (var menuServiceMenuItem in MenuService.MenuItems)
|
||||||
{
|
{
|
||||||
@ -66,40 +64,26 @@ public class MainWindowViewModel : ViewModelBase
|
|||||||
|
|
||||||
this.InitializeClient();
|
this.InitializeClient();
|
||||||
|
|
||||||
this.SelectedItem = MenuService.MenuItems.Last();
|
TabItems.Add(new TabItemViewModel("test", new TestViewModel()));
|
||||||
this.ContentDisplay = this.SelectedItem.CommandParameter;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Item> _menuItems;
|
|
||||||
public List<Item> MenuItems
|
|
||||||
{
|
|
||||||
get => _menuItems;
|
|
||||||
set => SetAndRaisePropertyChanged(ref _menuItems, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void InitializeClient()
|
private void InitializeClient()
|
||||||
{
|
{
|
||||||
this.MenuService.CreateMenu();
|
this.MenuService.CreateMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
public object SelectedContent
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return this.SelectedItem?.CommandParameter;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SelectMenu(string parameter)
|
public void SelectMenu(string parameter)
|
||||||
{
|
{
|
||||||
//this.SelectedItem = parameter;
|
//this.SelectedItem = parameter;
|
||||||
var obj = this.MenuService.MenuItems.FirstOrDefault(menuItem => menuItem.Header == parameter.ToString(), null);
|
var obj = this.MenuService.MenuItems.FirstOrDefault(menuItem => menuItem.Header == parameter.ToString(), null);
|
||||||
if (obj != null)
|
if (obj != null)
|
||||||
{
|
{
|
||||||
this.SelectedItem = obj;
|
TabItems.Add(new TabItemViewModel(obj.Header, obj.CommandParameter));
|
||||||
this.ContentDisplay = obj.CommandParameter;
|
//SetAndRaisePropertyChanged(ref _tabItems, TabItems);
|
||||||
|
//this.SelectedItem = obj;
|
||||||
|
//this.ContentDisplay = obj.CommandParameter;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
14
PSCHelpdesk/PSCHelpdesk/ViewModels/TabItemViewModel.cs
Normal file
14
PSCHelpdesk/PSCHelpdesk/ViewModels/TabItemViewModel.cs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
using Avalonia.Controls;
|
||||||
|
|
||||||
|
namespace PSCHelpdesk.ViewModels;
|
||||||
|
|
||||||
|
public class TabItemViewModel
|
||||||
|
{
|
||||||
|
public string Header { get; }
|
||||||
|
public object Content { get; }
|
||||||
|
public TabItemViewModel(string header, object content)
|
||||||
|
{
|
||||||
|
Header = header;
|
||||||
|
Content = content;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,4 +1,5 @@
|
|||||||
using Avalonia;
|
using Avalonia;
|
||||||
|
using Avalonia.Controls.Presenters;
|
||||||
using Avalonia.Controls.Primitives;
|
using Avalonia.Controls.Primitives;
|
||||||
using Avalonia.Data;
|
using Avalonia.Data;
|
||||||
using PSCHelpdesk.Shared.Menu;
|
using PSCHelpdesk.Shared.Menu;
|
||||||
|
|||||||
@ -11,28 +11,40 @@
|
|||||||
x:DataType="vm:MainWindowViewModel"
|
x:DataType="vm:MainWindowViewModel"
|
||||||
Title="PSCHelpdesk"
|
Title="PSCHelpdesk"
|
||||||
x:Name="MainWindowView">
|
x:Name="MainWindowView">
|
||||||
<Design.DataContext>
|
<DockPanel>
|
||||||
<vm:MainWindowViewModel/>
|
<Menu DockPanel.Dock="Top">
|
||||||
</Design.DataContext>
|
<MenuItem Header="_File">
|
||||||
<DockPanel>
|
<MenuItem Click="Settings_OnClick" Header="_Settings"/>
|
||||||
<Menu DockPanel.Dock="Top">
|
<Separator/>
|
||||||
<MenuItem Header="_File">
|
<MenuItem Click="Exit_OnClick" Header="_Exit"/>
|
||||||
<MenuItem Click="Settings_OnClick" Header="_Settings"/>
|
</MenuItem>
|
||||||
<Separator/>
|
<MenuItem Header="_Module" ItemsSource="{Binding MenuItems}" Classes="SubItems">
|
||||||
<MenuItem Click="Exit_OnClick" Header="_Exit"/>
|
<MenuItem.Styles>
|
||||||
</MenuItem>
|
<Style Selector="MenuItem.SubItems MenuItem" x:DataType="vs:Item">
|
||||||
<MenuItem Header="_Module" ItemsSource="{Binding MenuItems}" Classes="SubItems">
|
<Setter Property="Header" Value="{Binding Header }"/>
|
||||||
<MenuItem.Styles>
|
<Setter Property="ItemsSource" Value="{Binding Items}"/>
|
||||||
<Style Selector="MenuItem.SubItems MenuItem" x:DataType="vs:Item">
|
<Setter Property="Command" Value="{Binding Command }"></Setter>
|
||||||
<Setter Property="Header" Value="{Binding Header }"/>
|
<Setter Property="CommandParameter" Value="{Binding Header}"></Setter>
|
||||||
<Setter Property="ItemsSource" Value="{Binding Items}"/>
|
</Style>
|
||||||
<Setter Property="Command" Value="{Binding Command }"></Setter>
|
</MenuItem.Styles>
|
||||||
<Setter Property="CommandParameter" Value="{Binding Header}"></Setter>
|
</MenuItem>
|
||||||
</Style>
|
</Menu>
|
||||||
</MenuItem.Styles>
|
<TabControl ItemsSource="{Binding TabItems}">
|
||||||
</MenuItem>
|
<TabControl.ItemTemplate>
|
||||||
</Menu>
|
<DataTemplate DataType="vm:TabItemViewModel">
|
||||||
<TextBlock Text="{Binding SelectedItem.Header}"></TextBlock>
|
<TextBlock Text="{Binding Header}" />
|
||||||
<views:ContentDisplay SelectedOption="{Binding SelectedItem}"></views:ContentDisplay>
|
</DataTemplate>
|
||||||
</DockPanel>
|
</TabControl.ItemTemplate>
|
||||||
|
<TabControl.ContentTemplate>
|
||||||
|
<DataTemplate DataType="vm:TabItemViewModel">
|
||||||
|
<DockPanel LastChildFill="True">
|
||||||
|
<ContentControl Content="{Binding Content}" />
|
||||||
|
</DockPanel>
|
||||||
|
</DataTemplate>
|
||||||
|
</TabControl.ContentTemplate>
|
||||||
|
</TabControl>
|
||||||
|
</DockPanel>
|
||||||
|
<!--<ContentControl ContentTemplate="" Content="{Binding ContentDisplay}"></ContentControl>-->
|
||||||
|
|
||||||
|
<!--<views:ContentDisplay SelectedItem="{Binding SelectedItem}"></views:ContentDisplay>-->
|
||||||
</Window>
|
</Window>
|
||||||
|
|||||||
@ -27,5 +27,4 @@ public partial class MainWindow : Window
|
|||||||
};
|
};
|
||||||
settings.Show();
|
settings.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -10,6 +10,6 @@ public interface Contract
|
|||||||
|
|
||||||
void Configure();
|
void Configure();
|
||||||
|
|
||||||
List<UserControl> LoadViews();
|
List<Type> LoadViews();
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user