feat: Add Print Service Tray application with configuration and queue management

- Implemented PrintQueueService with job counting and snapshot retrieval.
- Created Form1 as the main entry point for the tray application.
- Developed ConfigurationForm for managing printer configurations and document types.
- Added models for printer configuration, queue status requests, and responses.
- Established ConfigurationService for loading and saving printer configurations.
- Introduced ServiceClient for IPC communication with the print service.
- Built TrayApplicationContext for managing the system tray icon and status updates.
- Added TODO.md for tracking remaining work and future enhancements.
This commit is contained in:
Jason
2026-05-29 10:43:48 -05:00
parent cce9248089
commit a08da0217d
17 changed files with 1541 additions and 4 deletions
+114 -4
View File
@@ -150,7 +150,8 @@
"label": "build-all-x86",
"dependsOn": [
"build-service-release-x86",
"build-cli-release-x86"
"build-cli-release-x86",
"build-tray-release-x86"
],
"dependsOrder": "parallel",
"group": {
@@ -163,7 +164,8 @@
"label": "build-all-x64",
"dependsOn": [
"build-service-release-x64",
"build-cli-release-x64"
"build-cli-release-x64",
"build-tray-release-x64"
],
"dependsOrder": "parallel",
"group": "build",
@@ -270,7 +272,8 @@
"label": "publish-all-x86",
"dependsOn": [
"publish-service-x86-self-contained",
"publish-cli-x86-self-contained"
"publish-cli-x86-self-contained",
"publish-tray-x86-self-contained"
],
"dependsOrder": "parallel",
"group": "build",
@@ -280,7 +283,8 @@
"label": "publish-all-x64",
"dependsOn": [
"publish-service-x64-self-contained",
"publish-cli-x64-self-contained"
"publish-cli-x64-self-contained",
"publish-tray-x64-self-contained"
],
"dependsOrder": "parallel",
"group": "build",
@@ -354,6 +358,112 @@
"group": "build"
},
// ============================================
// TRAY APP TASKS
// ============================================
{
"label": "build-tray-debug",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/PrintServiceTray/PrintServiceTray.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary",
"-c",
"Debug"
],
"problemMatcher": "$msCompile",
"group": "build"
},
{
"label": "build-tray-release-x86",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/PrintServiceTray/PrintServiceTray.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary",
"-c",
"Release",
"-r",
"win-x86"
],
"problemMatcher": "$msCompile",
"group": "build"
},
{
"label": "build-tray-release-x64",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/PrintServiceTray/PrintServiceTray.csproj",
"/property:GenerateFullPaths=true",
"/consoleloggerparameters:NoSummary",
"-c",
"Release",
"-r",
"win-x64"
],
"problemMatcher": "$msCompile",
"group": "build"
},
{
"label": "run-tray",
"command": "dotnet",
"type": "process",
"args": [
"run",
"--project",
"${workspaceFolder}/PrintServiceTray/PrintServiceTray.csproj"
],
"problemMatcher": "$msCompile",
"group": "test"
},
{
"label": "publish-tray-x86-self-contained",
"command": "dotnet",
"type": "process",
"args": [
"publish",
"${workspaceFolder}/PrintServiceTray/PrintServiceTray.csproj",
"-c",
"Release",
"-r",
"win-x86",
"--self-contained",
"true",
"/p:PublishSingleFile=true",
"/p:PublishTrimmed=false",
"-o",
"${workspaceFolder}/publish/x86"
],
"problemMatcher": "$msCompile",
"group": "build"
},
{
"label": "publish-tray-x64-self-contained",
"command": "dotnet",
"type": "process",
"args": [
"publish",
"${workspaceFolder}/PrintServiceTray/PrintServiceTray.csproj",
"-c",
"Release",
"-r",
"win-x64",
"--self-contained",
"true",
"/p:PublishSingleFile=true",
"/p:PublishTrimmed=false",
"-o",
"${workspaceFolder}/publish/x64"
],
"problemMatcher": "$msCompile",
"group": "build"
},
// ============================================
// CLEAN TASKS
// ============================================
{