Files
CGW-Printing/PrintService/Program.cs
T

35 lines
1.1 KiB
C#

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();