commit af1beeaa2c5aa8adbe486481f88ff3ce3da62198 Author: grim Date: Fri Dec 26 20:28:02 2025 +0100 initial diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8d579c8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.git +.vs +ServiceMonitor/obj/* +*.user \ No newline at end of file diff --git a/ServiceMonitor.sln b/ServiceMonitor.sln new file mode 100644 index 0000000..92bc7e6 --- /dev/null +++ b/ServiceMonitor.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.36705.20 d17.14 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceMonitor", "ServiceMonitor\ServiceMonitor.csproj", "{D48B528D-36B0-4AC6-868F-D5F6DD23113E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D48B528D-36B0-4AC6-868F-D5F6DD23113E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D48B528D-36B0-4AC6-868F-D5F6DD23113E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D48B528D-36B0-4AC6-868F-D5F6DD23113E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D48B528D-36B0-4AC6-868F-D5F6DD23113E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B3BC97EA-AA14-45B1-BF37-6B739296AD9B} + EndGlobalSection +EndGlobal diff --git a/ServiceMonitor/ApplicationDescriptor.cs b/ServiceMonitor/ApplicationDescriptor.cs new file mode 100644 index 0000000..2b594dd --- /dev/null +++ b/ServiceMonitor/ApplicationDescriptor.cs @@ -0,0 +1,60 @@ +namespace ServiceMonitor; + +public sealed class ApplicationDescriptor +{ + public static readonly ApplicationDescriptor CzechWorker = new ApplicationDescriptor(ApplicationRealm.Czech, ApplicationType.Worker); + public static readonly ApplicationDescriptor CzechManager = new ApplicationDescriptor(ApplicationRealm.Czech, ApplicationType.Manager); + public static readonly ApplicationDescriptor SlovakiaWorker = new ApplicationDescriptor(ApplicationRealm.Slovakia, ApplicationType.Worker); + public static readonly ApplicationDescriptor SlovakiaManager = new ApplicationDescriptor(ApplicationRealm.Slovakia, ApplicationType.Manager); + public static readonly ApplicationDescriptor PolandWorker = new ApplicationDescriptor(ApplicationRealm.Poland, ApplicationType.Worker); + public static readonly ApplicationDescriptor PolandManager = new ApplicationDescriptor(ApplicationRealm.Poland, ApplicationType.Manager); + public static readonly ApplicationDescriptor GermanyWorker = new ApplicationDescriptor(ApplicationRealm.Germany, ApplicationType.Worker); + public static readonly ApplicationDescriptor GermanyManager = new ApplicationDescriptor(ApplicationRealm.Germany, ApplicationType.Manager); + public static readonly ApplicationDescriptor AustriaWorker = new ApplicationDescriptor(ApplicationRealm.Austria, ApplicationType.Worker); + public static readonly ApplicationDescriptor AustriaManager = new ApplicationDescriptor(ApplicationRealm.Austria, ApplicationType.Manager); + public static readonly ApplicationDescriptor SwitzerlandWorker = new ApplicationDescriptor(ApplicationRealm.Switzerland, ApplicationType.Worker); + public static readonly ApplicationDescriptor SwitzerlandManager = new ApplicationDescriptor(ApplicationRealm.Switzerland, ApplicationType.Manager); + public static readonly ApplicationDescriptor FranceWorker = new ApplicationDescriptor(ApplicationRealm.France, ApplicationType.Worker); + public static readonly ApplicationDescriptor FranceManager = new ApplicationDescriptor(ApplicationRealm.France, ApplicationType.Manager); + public static readonly ApplicationDescriptor ItalyWorker = new ApplicationDescriptor(ApplicationRealm.Italy, ApplicationType.Worker); + public static readonly ApplicationDescriptor ItalyManager = new ApplicationDescriptor(ApplicationRealm.Italy, ApplicationType.Manager); + public static readonly ApplicationDescriptor SpainWorker = new ApplicationDescriptor(ApplicationRealm.Spain, ApplicationType.Worker); + public static readonly ApplicationDescriptor SpainManager = new ApplicationDescriptor(ApplicationRealm.Spain, ApplicationType.Manager); + public static readonly ApplicationDescriptor NorwayWorker = new ApplicationDescriptor(ApplicationRealm.Norway, ApplicationType.Worker); + public static readonly ApplicationDescriptor NorwayManager = new ApplicationDescriptor(ApplicationRealm.Norway, ApplicationType.Manager); + + public static readonly IReadOnlyCollection All = new List + { + CzechWorker, + CzechManager, + SlovakiaWorker, + SlovakiaManager, + PolandWorker, + PolandManager, + GermanyWorker, + GermanyManager, + AustriaWorker, + AustriaManager, + SwitzerlandWorker, + SwitzerlandManager, + FranceWorker, + FranceManager, + ItalyWorker, + ItalyManager, + SpainWorker, + SpainManager, + NorwayWorker, + NorwayManager, + }; + + private ApplicationDescriptor(ApplicationRealm realm, ApplicationType type) + + { + Realm = realm; + Type = type; + } + + public ApplicationRealm Realm { get; } + + public ApplicationType Type { get; } +} diff --git a/ServiceMonitor/ApplicationRealm.cs b/ServiceMonitor/ApplicationRealm.cs new file mode 100644 index 0000000..64bbf3e --- /dev/null +++ b/ServiceMonitor/ApplicationRealm.cs @@ -0,0 +1,50 @@ +namespace ServiceMonitor; + +public sealed class ApplicationRealm +{ + public static readonly ApplicationRealm Czech = new ApplicationRealm("czech"); + + public static readonly ApplicationRealm Slovakia = new ApplicationRealm("slovakia"); + + public static readonly ApplicationRealm Poland = new ApplicationRealm("poland"); + + public static readonly ApplicationRealm Germany = new ApplicationRealm("germany"); + + public static readonly ApplicationRealm Austria = new ApplicationRealm("austria"); + + public static readonly ApplicationRealm Switzerland = new ApplicationRealm("switzerland"); + + public static readonly ApplicationRealm France = new ApplicationRealm("france"); + + public static readonly ApplicationRealm Italy = new ApplicationRealm("italy"); + + public static readonly ApplicationRealm Spain = new ApplicationRealm("spain"); + + public static readonly ApplicationRealm Norway = new ApplicationRealm("norway"); + + public static readonly IReadOnlyCollection All = new List + { + Czech, + Slovakia, + Poland, + Germany, + Austria, + Switzerland, + France, + Italy, + Spain, + Norway + }; + + private ApplicationRealm(string name) + { + Name = name; + } + + public string Name { get; } + + public override string ToString() + { + return string.Format("realm = '{0}'", Name); + } +} diff --git a/ServiceMonitor/ApplicationType.cs b/ServiceMonitor/ApplicationType.cs new file mode 100644 index 0000000..06fba23 --- /dev/null +++ b/ServiceMonitor/ApplicationType.cs @@ -0,0 +1,7 @@ +namespace ServiceMonitor; + +public enum ApplicationType +{ + Worker = 1, + Manager +} diff --git a/ServiceMonitor/MainForm.Designer.cs b/ServiceMonitor/MainForm.Designer.cs new file mode 100644 index 0000000..2db1d11 --- /dev/null +++ b/ServiceMonitor/MainForm.Designer.cs @@ -0,0 +1,57 @@ +namespace ServiceMonitor +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + _dockPanel = new WeifenLuo.WinFormsUI.Docking.DockPanel(); + SuspendLayout(); + // + // _dockPanel + // + _dockPanel.Dock = DockStyle.Fill; + _dockPanel.Location = new Point(0, 0); + _dockPanel.Name = "_dockPanel"; + _dockPanel.Size = new Size(800, 450); + _dockPanel.TabIndex = 0; + // + // MainForm + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 450); + Controls.Add(_dockPanel); + Name = "MainForm"; + Text = "Form1"; + ResumeLayout(false); + } + + #endregion + + private WeifenLuo.WinFormsUI.Docking.DockPanel _dockPanel; + } +} diff --git a/ServiceMonitor/MainForm.cs b/ServiceMonitor/MainForm.cs new file mode 100644 index 0000000..6d32010 --- /dev/null +++ b/ServiceMonitor/MainForm.cs @@ -0,0 +1,14 @@ +using WeifenLuo.WinFormsUI.Docking; + +namespace ServiceMonitor +{ + public partial class MainForm : Form + { + public MainForm() + { + InitializeComponent(); + + _dockPanel.Theme = new VS2015BlueTheme(); + } + } +} diff --git a/ServiceMonitor/MainForm.resx b/ServiceMonitor/MainForm.resx new file mode 100644 index 0000000..8b2ff64 --- /dev/null +++ b/ServiceMonitor/MainForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ServiceMonitor/Program.cs b/ServiceMonitor/Program.cs new file mode 100644 index 0000000..ff3635a --- /dev/null +++ b/ServiceMonitor/Program.cs @@ -0,0 +1,17 @@ +namespace ServiceMonitor +{ + internal static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); + Application.Run(new MainForm()); + } + } +} \ No newline at end of file diff --git a/ServiceMonitor/ServiceMonitor.csproj b/ServiceMonitor/ServiceMonitor.csproj new file mode 100644 index 0000000..663fdb8 --- /dev/null +++ b/ServiceMonitor/ServiceMonitor.csproj @@ -0,0 +1,11 @@ + + + + WinExe + net8.0-windows + enable + true + enable + + + \ No newline at end of file