From cf7b9abcf03f454d8f34374ad7b06055b997140b Mon Sep 17 00:00:00 2001 From: Rene Schwarz Date: Sun, 11 Apr 2021 23:29:13 +0200 Subject: [PATCH] yes --- .../DesignTimeBuild/.dtbcache.v2 | Bin 81292 -> 81292 bytes .vs/Server Dashboard/v16/.suo | Bin 115200 -> 155136 bytes Server Dashboard/App.xaml | 9 +- .../Controls/ServerModules/ServerModule.xaml | 53 ++++ .../ServerModules/ServerModule.xaml.cs | 23 ++ .../DashboardModules/DashboardModule.cs | 4 - Server Dashboard/Server Dashboard.csproj | 2 + Server Dashboard/Server Dashboard.csproj.user | 12 + .../ViewModels/DashboardModuleViewModel.cs | 50 --- .../ServerModule/DashboardModuleViewModel.cs | 26 ++ .../DashboardPages/MainDashboardPage.xaml | 78 +---- .../ModuleCRUD/CreateModulePopup.xaml | 287 ++++++++++++++++++ .../ModuleCRUD/CreateModulePopup.xaml.cs | 13 + Server Dashboard/Views/DashboardWindow.xaml | 2 +- .../netcoreapp3.1/MaterialDesignColors.dll | Bin 0 -> 302592 bytes .../MaterialDesignThemes.Wpf.dll | Bin 0 -> 8172544 bytes .../bin/Debug/netcoreapp3.1/Renci.SshNet.dll | Bin 0 -> 801792 bytes .../netcoreapp3.1/Server Dashboard.deps.json | 68 +++++ .../Debug/netcoreapp3.1/Server Dashboard.dll | Bin 1076224 -> 1085952 bytes .../Debug/netcoreapp3.1/Server Dashboard.pdb | Bin 21012 -> 21928 bytes .../SshNet.Security.Cryptography.dll | Bin 0 -> 34816 bytes .../obj/Debug/netcoreapp3.1/App.baml | Bin 11758 -> 12181 bytes .../obj/Debug/netcoreapp3.1/App.g.cs | 5 +- .../obj/Debug/netcoreapp3.1/App.g.i.cs | 5 +- .../Controls/ServerModules/ServerModule.baml | Bin 0 -> 2665 bytes .../Controls/ServerModules/ServerModule.g.cs | 76 +++++ .../ServerModules/ServerModule.g.i.cs | 76 +++++ .../Server Dashboard.assets.cache | Bin 8818 -> 10445 bytes ...r Dashboard.csproj.CoreCompileInputs.cache | 2 +- ...rver Dashboard.csproj.FileListAbsolute.txt | 8 + ...er Dashboard.csprojAssemblyReference.cache | Bin 424 -> 142195 bytes .../Server Dashboard.designer.deps.json | 66 ++++ .../Debug/netcoreapp3.1/Server Dashboard.dll | Bin 1076224 -> 1085952 bytes .../Server Dashboard.g.resources | Bin 1053143 -> 1062850 bytes .../Debug/netcoreapp3.1/Server Dashboard.pdb | Bin 21012 -> 21928 bytes .../Server Dashboard_MarkupCompile.cache | 8 +- .../Server Dashboard_MarkupCompile.i.cache | 8 +- .../Server Dashboard_MarkupCompile.lref | 2 + .../DashboardPages/MainDashboardPage.baml | Bin 4499 -> 3572 bytes .../DashboardPages/MainDashboardPage.g.cs | 18 +- .../DashboardPages/MainDashboardPage.g.i.cs | 18 +- .../ModuleCRUD/CreateModulePopup.baml | Bin 0 -> 7306 bytes .../ModuleCRUD/CreateModulePopup.g.cs | 154 ++++++++++ .../ModuleCRUD/CreateModulePopup.g.i.cs | 154 ++++++++++ .../netcoreapp3.1/Views/DashboardWindow.baml | Bin 8824 -> 8840 bytes .../netcoreapp3.1/Views/DashboardWindow.g.cs | 2 +- .../Views/DashboardWindow.g.i.cs | 2 +- .../Server Dashboard.csproj.nuget.dgspec.json | 8 + .../obj/Server Dashboard.csproj.nuget.g.props | 1 + .../Server Dashboard.csproj.nuget.g.targets | 3 + Server Dashboard/obj/project.assets.json | 174 +++++++++++ Server Dashboard/obj/project.nuget.cache | 6 +- 52 files changed, 1281 insertions(+), 142 deletions(-) create mode 100644 Server Dashboard/Controls/ServerModules/ServerModule.xaml create mode 100644 Server Dashboard/Controls/ServerModules/ServerModule.xaml.cs delete mode 100644 Server Dashboard/ViewModels/DashboardModuleViewModel.cs create mode 100644 Server Dashboard/ViewModels/ServerModule/DashboardModuleViewModel.cs create mode 100644 Server Dashboard/Views/DashboardPages/ModuleCRUD/CreateModulePopup.xaml create mode 100644 Server Dashboard/Views/DashboardPages/ModuleCRUD/CreateModulePopup.xaml.cs create mode 100644 Server Dashboard/bin/Debug/netcoreapp3.1/MaterialDesignColors.dll create mode 100644 Server Dashboard/bin/Debug/netcoreapp3.1/MaterialDesignThemes.Wpf.dll create mode 100644 Server Dashboard/bin/Debug/netcoreapp3.1/Renci.SshNet.dll create mode 100644 Server Dashboard/bin/Debug/netcoreapp3.1/SshNet.Security.Cryptography.dll create mode 100644 Server Dashboard/obj/Debug/netcoreapp3.1/Controls/ServerModules/ServerModule.baml create mode 100644 Server Dashboard/obj/Debug/netcoreapp3.1/Controls/ServerModules/ServerModule.g.cs create mode 100644 Server Dashboard/obj/Debug/netcoreapp3.1/Controls/ServerModules/ServerModule.g.i.cs create mode 100644 Server Dashboard/obj/Debug/netcoreapp3.1/Views/DashboardPages/ModuleCRUD/CreateModulePopup.baml create mode 100644 Server Dashboard/obj/Debug/netcoreapp3.1/Views/DashboardPages/ModuleCRUD/CreateModulePopup.g.cs create mode 100644 Server Dashboard/obj/Debug/netcoreapp3.1/Views/DashboardPages/ModuleCRUD/CreateModulePopup.g.i.cs diff --git a/.vs/Server Dashboard/DesignTimeBuild/.dtbcache.v2 b/.vs/Server Dashboard/DesignTimeBuild/.dtbcache.v2 index 747fce72f10713d749a7c880445d765bfe91fd11..02233619e11331547caa9d53ea4efb0f335db13c 100644 GIT binary patch delta 309 zcmXBHJ5Iwu6oui89ZYxxK|{d2AyA^3vF}{F3mbrvdS>iFq5*{kkSJ{mk`(D!161sQ z^;`)FA*JCWe(BTE884dSMKkI)Ced{-(=Ibkn&7n0tpW6?&>=Wm%fhKDtED$VLC9r5 z8~BA<*BXi%ytQa1FBd)S0j=?wu7WLsR)sGiK&eYDOKA`T$lRG+RcN3<1gnkn3Y4{( zgfheT@4I;Zvn4*o?Q9tLW^eK4^QC`!>_6N`jsMy_+pNQO*e*-i9@}RJ?2sL?V|Kz$ znP6w^uNy{<5ebSYrY0>>GNk3Hm{RMCR;Wd*v_|XHrj0L}zjnlVG#HH1X&KYf^iJnN3MTa7I z1x9N|;H_AFo;H%>CNU$JMkK`%G!p@&BvnUarHCQ8fJS?g){p>G0~Zl$rJdm1e*aC1 z>S(-ZpXcc?yH9&NXK7d-q_1p$>+tvvyEp7kuHf~_&!CIv-C{a#Uogz3)J}R2>Ah$+ b*C5^G7hCh*W4hcOq~F|qjH;hemED?uEbT~3 diff --git a/.vs/Server Dashboard/v16/.suo b/.vs/Server Dashboard/v16/.suo index b460527c854ceda1d7faf693fd79340dc9b4930d..a0bcbbfd8090373342195462ba97ba25c22c3a26 100644 GIT binary patch literal 155136 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

KM=ts9KPKIM zGw0OKpK@O{r@HCW`%ey8Uv2!=O=AoF>ZX5n)7TlmAUExIg_{;{d~9#*f&~sdqpSeE+n<{WGc`t zzc5gwH_w%0&aq2u_GI5^kog}`d#y?!N1vmPMt)@Y4IVi}&a(E)FPvp6jLn~AN{lrn zT8y#z{f+%%EvEbgV^Y4gZ((v@56!D`bST{;_XW`)dYtnM6D;NBan+WR;@fV!H7UJs zQX>9h`zIO`V-pfG5@M5*1{h=c3G%R{0sRIfXCy9uQthT#%0)s;f_!QT`O5`8=m=hV zX1H;eWiL`^xosE?=G$T= z*DI*bH3kK%11Qc^_Si~;WVwmF!dIy)$+yU+2XOBO@UU1=^^#q;QYTd*l1@^uYdft! z{e}7|hkGaS^3gh4*RcZc5sUFgZz0|# zmT5}xXVH|(^W&i9_!ZF2Usr&!%%Sm{&0i?8el*242ItZ^4_P}_so88k@97v}m&Idf zxbusSy~;Zz)289e4)cXNHb_VFQ&-yH)E}}h%DBmhzgrU$lKQ6i9g?;R(^T!#YBc5d zFR9Dd}f6Skg8I z^rydi$kV52)-TmQ_1V;qja8n{r4&y#MtOcbth;PHCAMQzD1tFGjiXRJW@@zOQxnl@e!bLa9z_#9E*o_KW-|-o6=o+^oxkHVwZ$@x;|`D<$Xq!ug;V9LW=2H20>fj*Qa2gl|$rGyoqW3BHBaq zXExJ*jpiPTndGrMsJiutJ;>D)W&J`jHSC{gra=|qg_g=W`DK=h!l~DLo*imqW_CM$ zs~hdTm8B$0M<^!QKSG%r{%`-29x_~7NO-)d0% zKcFZXUP)R^J(aFBtxGaLS;^p!I@-&l!<5X%@IFd7HJS^knBu z6J_}#%3T{p8S;yV={Oy2Ta0SDyvpY5_GaI`sQ#j<)GWKbKsWLPdaBA~2dApJRTP<* zOgGalc*dAaZq+QIr&g2UCZC5P>nXY4OL?$yx|fnqhO*g3r4#XZrEG!f0rSMhXY)wC z%NZ}w#tz?(!pJPYO z{F=OE{SYOv)k4>vA@i;?6yza;6O?F$G;;efyy>=Pgtmr4)_5gF=la-2{x)7o6850z zpt8!cS+=->vXb~h>wIf*S-G_$zN9k0s;`vlsytoM_2F`W3eU?hWioQTouUSlX@`V7w%WY zWTUr7w{wat*W924%hQDvu8N(c$;X$iR{SO4>)`=v-h%%gvAHRTwERSOucSbwR_1+1 z>2z3HhANxI*}+lpx;M&uKBHTHgr@PHf6&98((xI>xTnuSfu;YVXxhX)ZfZ91kT%Mk-3suCo+OqO*TbX+A_v za_P4;SDx1^2I!S%yiRURQ&z~Q6-BqpPuZlU`d0BzbYPb4mEF6{$`>Rn&QVBX;6Ewk zXB2H6xedP7Px(StC`yX#osL8PLT6>CR6fTd>`hlD!TK=&?()nxv`WSeruL2aaweZ- zej=za@4a-I2|j2H9Io6?-1#9Hm#K836I^|teBvWY6m|Urp@ayTmZ{t!$Ba<&8V4Jc zLgl+AoT7ZU07A)#lIJp&6GADw#2+`em-XLLmTXE?CS0!^jgVtGF(W}EJ2Z-ev=t%z zF{sF_gZZ3^S4PQIhiMv3<6}7IhT%oF5mouI*_Mi1;uaN^%g#FG8QJ{^Wy-YWc*Ava zcSqhW%NpfD>ZR}r5K$v7@yct=#Pow3dvuJ_tFf0(nTYY @@ -10,6 +11,9 @@ + + + @@ -229,7 +233,7 @@ - - + diff --git a/Server Dashboard/Controls/ServerModules/ServerModule.xaml b/Server Dashboard/Controls/ServerModules/ServerModule.xaml new file mode 100644 index 0000000..4d6f840 --- /dev/null +++ b/Server Dashboard/Controls/ServerModules/ServerModule.xaml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Server Dashboard/Controls/ServerModules/ServerModule.xaml.cs b/Server Dashboard/Controls/ServerModules/ServerModule.xaml.cs new file mode 100644 index 0000000..702692a --- /dev/null +++ b/Server Dashboard/Controls/ServerModules/ServerModule.xaml.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace Server_Dashboard.Controls.ServerModules { + ///

+ /// Interaktionslogik für ServerModule.xaml + /// + public partial class ServerModule : UserControl { + public ServerModule() { + InitializeComponent(); + } + } +} diff --git a/Server Dashboard/DashboardModules/DashboardModule.cs b/Server Dashboard/DashboardModules/DashboardModule.cs index 78a2130..aea985c 100644 --- a/Server Dashboard/DashboardModules/DashboardModule.cs +++ b/Server Dashboard/DashboardModules/DashboardModule.cs @@ -7,9 +7,6 @@ namespace Server_Dashboard { public string ModulName { get; set; } public string Creator { get; set; } public ModuleItem ServerInfo { get; set; } - public string ModuleIcon { get; set; } - public int Width { get; set; } - public int Height { get; set; } public string StatusIndicator { get; set; } public string StatusIndicatorBG { get; set; } @@ -17,7 +14,6 @@ namespace Server_Dashboard { StatusIndicator = true ? "#20c657" : "#e53935"; StatusIndicatorBG = true ? "#94eeb0" : "#ef9a9a"; ServerInfo = new ModuleItem(true, 88.88, 69.69, DateTime.Now, "sudo", "Archlinux", "192.168.1.100", "84.102.25.96"); - } } } diff --git a/Server Dashboard/Server Dashboard.csproj b/Server Dashboard/Server Dashboard.csproj index 0469c4e..e207a9e 100644 --- a/Server Dashboard/Server Dashboard.csproj +++ b/Server Dashboard/Server Dashboard.csproj @@ -38,8 +38,10 @@ + + diff --git a/Server Dashboard/Server Dashboard.csproj.user b/Server Dashboard/Server Dashboard.csproj.user index c9b7fcd..7571c6f 100644 --- a/Server Dashboard/Server Dashboard.csproj.user +++ b/Server Dashboard/Server Dashboard.csproj.user @@ -9,20 +9,32 @@ + + Code + Code + + Code + Code + + Designer + Designer Designer + + Designer + Designer diff --git a/Server Dashboard/ViewModels/DashboardModuleViewModel.cs b/Server Dashboard/ViewModels/DashboardModuleViewModel.cs deleted file mode 100644 index 01eba6e..0000000 --- a/Server Dashboard/ViewModels/DashboardModuleViewModel.cs +++ /dev/null @@ -1,50 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using System.Text; - -namespace Server_Dashboard { - class DashboardModuleViewModel : BaseViewModel { - - private ObservableCollection modules; - - public ObservableCollection Modules { - get { return modules; } - set { - if (modules != value) - modules = value; - OnPropertyChanged(nameof(modules)); - } - } - - public DashboardModuleViewModel() { - Modules = new ObservableCollection(); - for (int i = 0; i < 1; i++) { - Modules.Add(new DashboardModule() { - Creator = "Ersteller TestUser", - ModulName = "TestName", - ModuleIcon = "../../Assets/Images/PlaceHolderModuleLight.png", - Width = new Random().Next(300, 400), - Height = new Random().Next(100, 400), - }); - } - var sort = Modules.OrderBy(h => h.Height).ThenBy(w => w.Width).ToList(); - Modules = new ObservableCollection(sort); - } - #region Dashboard CRUD - private void CreateDashboard() { - - } - private void UpdateDashboard() { - - } - private void GetDashboardInformation() { - - } - private void DeleteDashboard() { - - } - #endregion - } -} \ No newline at end of file diff --git a/Server Dashboard/ViewModels/ServerModule/DashboardModuleViewModel.cs b/Server Dashboard/ViewModels/ServerModule/DashboardModuleViewModel.cs new file mode 100644 index 0000000..84ce681 --- /dev/null +++ b/Server Dashboard/ViewModels/ServerModule/DashboardModuleViewModel.cs @@ -0,0 +1,26 @@ +using Server_Dashboard.Views.DashboardPages.ModuleCRUD; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Input; +using System.Windows.Media; + +namespace Server_Dashboard { + class DashboardModuleViewModel : BaseViewModel { + public string ModuleName { get; set; } + public string StatusIndicator { get; set; } + public string StatusIndicatorBG { get; set; } + public string ServerName { get; set; } + public string HostName { get; set; } + public string CpuTemp { get; set; } + public string GpuTemp { get; set; } + public string Uptime { get; set; } + public string DeployDate { get; set; } + public string PublicIpAdress { get; set; } + public string PrivateIpAdress { get; set; } + public string OSHostName { get; set; } + } +} \ No newline at end of file diff --git a/Server Dashboard/Views/DashboardPages/MainDashboardPage.xaml b/Server Dashboard/Views/DashboardPages/MainDashboardPage.xaml index 2e40986..70f66b8 100644 --- a/Server Dashboard/Views/DashboardPages/MainDashboardPage.xaml +++ b/Server Dashboard/Views/DashboardPages/MainDashboardPage.xaml @@ -4,8 +4,12 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:vm="clr-namespace:Server_Dashboard" - xmlns:local="clr-namespace:Server_Dashboard.Views.DashboardPages" xmlns:i="http://schemas.microsoft.com/xaml/behaviors" - mc:Ignorable="d" + xmlns:local="clr-namespace:Server_Dashboard.Views.DashboardPages" + xmlns:modulescrud="clr-namespace:Server_Dashboard.Views.DashboardPages.ModuleCRUD" + xmlns:root="clr-namespace:Server_Dashboard" + xmlns:i="http://schemas.microsoft.com/xaml/behaviors" + xmlns:controls="clr-namespace:Server_Dashboard.Controls.ServerModules" + mc:Ignorable="d" d:DesignHeight="920" d:DesignWidth="1600"> @@ -36,21 +40,22 @@ Command="{Binding CreateModuleCommand}" Content="CREATE MODULE" Height="50" - Margin="0 10 0 0" + Margin="5 10 5 0" Cursor="Hand" + x:Name="CreateModule" />