Initial commit: LAAPC Print Service - Windows service with multi-tray printing, IPC queue management, PDF testing support, and self-installing CLI

This commit is contained in:
Jason
2026-05-14 16:59:59 -05:00
commit cce9248089
23 changed files with 2974 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
using PrintService;
using PrintService.Models;
using PrintService.Services;
using Microsoft.Extensions.Options;
IHost host = Host.CreateDefaultBuilder(args)
.UseWindowsService(options =>
{
options.ServiceName = "LAAPC Print Service";
})
.ConfigureServices((hostContext, services) =>
{
// Bind configuration
services.Configure<AppSettings>(hostContext.Configuration.GetSection("AppSettings"));
// Register services
services.AddSingleton<PrintQueueService>();
services.AddSingleton<FileMonitorService>();
services.AddSingleton<PrinterService>();
services.AddSingleton<DocumentProcessor>();
services.AddSingleton<IpcService>();
// Register the main worker
services.AddHostedService<Worker>();
})
.Build();
// Ensure directories exist
var config = host.Services.GetRequiredService<IOptions<AppSettings>>().Value;
Directory.CreateDirectory(config.QueuePath);
Directory.CreateDirectory(config.ErrorPath);
Directory.CreateDirectory(config.ArchivePath);
host.Run();