37 lines
1.2 KiB
C#
37 lines
1.2 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<ConfigurationService>();
|
|
services.AddSingleton<PrintQueueService>();
|
|
services.AddSingleton<FileMonitorService>();
|
|
services.AddSingleton<ContentTransformer>();
|
|
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();
|