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:
@@ -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();
|
||||
Reference in New Issue
Block a user