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:
@@ -0,0 +1,29 @@
|
||||
namespace PrintServiceTray.Models;
|
||||
|
||||
/// <summary>
|
||||
/// Configuration for all document types
|
||||
/// </summary>
|
||||
public class PrinterConfiguration
|
||||
{
|
||||
public Dictionary<string, DocumentTypeConfig> DocumentTypes { get; set; } = new();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Configuration for a single document type
|
||||
/// </summary>
|
||||
public class DocumentTypeConfig
|
||||
{
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public List<PageConfig> Pages { get; set; } = new();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Configuration for a single page
|
||||
/// </summary>
|
||||
public class PageConfig
|
||||
{
|
||||
public int PageNumber { get; set; }
|
||||
public string PrinterName { get; set; } = string.Empty;
|
||||
public int TrayNumber { get; set; }
|
||||
public string? TrayLabel { get; set; } // Optional: "Pink Paper", "Green Paper", etc.
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
namespace PrintServiceTray.Models;
|
||||
|
||||
public class QueueStatusRequest
|
||||
{
|
||||
public string Command { get; set; } = "GetQueueStatus";
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
namespace PrintServiceTray.Models;
|
||||
|
||||
public class QueueStatusResponse
|
||||
{
|
||||
public bool Success { get; set; }
|
||||
public string? Message { get; set; }
|
||||
public List<JobStatus> Jobs { get; set; } = new();
|
||||
}
|
||||
|
||||
public class JobStatus
|
||||
{
|
||||
public string Id { get; set; } = string.Empty;
|
||||
public string FileName { get; set; } = string.Empty;
|
||||
public string DocumentType { get; set; } = string.Empty;
|
||||
public string Status { get; set; } = string.Empty;
|
||||
public string? PrinterName { get; set; }
|
||||
public int? CurrentPage { get; set; }
|
||||
public int? TotalPages { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user