print server with new concept
This commit is contained in:
@@ -1,26 +0,0 @@
|
||||
using Inspectron.Epson;
|
||||
|
||||
namespace EpsonPrintService;
|
||||
|
||||
/// <summary>
|
||||
/// Simple console implementation that logs discovered printers to the console
|
||||
/// </summary>
|
||||
public class ConsoleDiscoveredPrintersReceiver : IDiscoveredPrintersReceiver
|
||||
{
|
||||
public Task OnPrintersDiscoveredAsync(IReadOnlyList<DiscoveredPrinter> printers)
|
||||
{
|
||||
Console.WriteLine($"[{DateTime.Now:HH:mm:ss}] Discovered printers changed. Found {printers.Count} printer(s):");
|
||||
|
||||
foreach (var printer in printers)
|
||||
{
|
||||
Console.WriteLine($" - {printer.IPAddress}");
|
||||
}
|
||||
|
||||
if (printers.Count == 0)
|
||||
{
|
||||
Console.WriteLine(" (no printers found)");
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
using Inspectron.Epson;
|
||||
|
||||
namespace EpsonPrintService;
|
||||
|
||||
/// <summary>
|
||||
/// Interface for receiving discovered printer updates
|
||||
/// </summary>
|
||||
public interface IDiscoveredPrintersReceiver
|
||||
{
|
||||
/// <summary>
|
||||
/// Called when the list of discovered printers has changed
|
||||
/// </summary>
|
||||
/// <param name="printers">The current list of discovered printers</param>
|
||||
Task OnPrintersDiscoveredAsync(IReadOnlyList<DiscoveredPrinter> printers);
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
using Inspectron.Epson;
|
||||
using Inspectron.Epson.PrintServer.ConfigurationSources;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace EpsonPrintService;
|
||||
@@ -20,15 +21,13 @@ public class PrinterDiscoveryBackgroundTask
|
||||
public PrinterDiscoveryBackgroundTask(
|
||||
IDiscoveryService discoveryService,
|
||||
IDiscoveredPrintersReceiver receiver,
|
||||
ILogger logger,
|
||||
TimeSpan? interval = null,
|
||||
TimeSpan? discoveryTimeout = null)
|
||||
ILogger logger)
|
||||
{
|
||||
_discoveryService = discoveryService;
|
||||
_receiver = receiver;
|
||||
_logger = logger;
|
||||
_interval = interval ?? TimeSpan.FromSeconds(30);
|
||||
_discoveryTimeout = discoveryTimeout ?? TimeSpan.FromSeconds(3);
|
||||
_interval = TimeSpan.FromSeconds(30);
|
||||
_discoveryTimeout = TimeSpan.FromSeconds(3);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -68,6 +67,11 @@ public class PrinterDiscoveryBackgroundTask
|
||||
try
|
||||
{
|
||||
var printers = await _discoveryService.DiscoverPrintersAsync(_discoveryTimeout);
|
||||
printers.Add(new DiscoveredPrinter()
|
||||
{
|
||||
IPAddress = "127.0.0.1",
|
||||
ModelName = "TM-T30III",
|
||||
});
|
||||
var currentIps = printers.Select(p => p.IPAddress).ToHashSet();
|
||||
|
||||
if (HasConfigurationChanged(currentIps))
|
||||
|
||||
@@ -23,6 +23,9 @@ kernel.Bind<IDiscoveryService>().To<DiscoveryService>().InSingletonScope();
|
||||
|
||||
|
||||
kernel.Bind<EpsonPrintServiceConfiguration>().ToConstant(config);
|
||||
//kernel.Bind<IPrinterFactory>().ToMethod(sp=>new HtmlPrinterFactory("TM-U220II.html", paperWidth: 258,type:0x0d, logger:sp.Kernel.Get<ILogger>()));
|
||||
//kernel.Bind<IPrinterFactory>().ToMethod(sp=>new HtmlPrinterFactory("TM-T30III.html",logger:sp.Kernel.Get<ILogger>()));
|
||||
kernel.Bind<IPrinterFactory>().To<EpsonPrinterFactory>();
|
||||
|
||||
kernel.Bind<IPrintJobSource, SignalRPrintJobSource>().To<SignalRPrintJobSource>().InSingletonScope();
|
||||
kernel.Bind<IPrintService>().To<Inspectron.Epson.PrintServer.PrintServices.EpsonPrintService>();
|
||||
@@ -35,10 +38,10 @@ kernel.Bind<ILogger>().ToMethod(ctx =>
|
||||
return loggerFactory.CreateLogger("EpsonPrintService");
|
||||
});
|
||||
kernel.Bind<IAssignedPrinterRepository>().ToConstant(config);
|
||||
kernel.Bind<IPrinterFactory>().To<PrinterFactory>().InSingletonScope();
|
||||
kernel.Bind<IWrapperPrinterFactory>().To<PrinterWrapperFactory>().InSingletonScope();
|
||||
kernel.Bind<IPrinterConfigurationSource>().To<FixedConfigurationSource>();
|
||||
kernel.Bind<PrintServer>().ToSelf().InSingletonScope();
|
||||
kernel.Bind<IDiscoveredPrintersReceiver>().To<ConsoleDiscoveredPrintersReceiver>().InSingletonScope();
|
||||
kernel.Bind<IDiscoveredPrintersReceiver>().To<JamesDiscoveredPrintersReceiver>().InSingletonScope();
|
||||
kernel.Bind<PrinterDiscoveryBackgroundTask>().ToSelf().InSingletonScope();
|
||||
|
||||
var printLoop = kernel.Get<PrintLoop>();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"GroupId": "67e534f8e86e816689323023",
|
||||
"RestaurantId": "63e37295bd6f26dbd36164c0",
|
||||
"GroupId": "64a3d9f0876bc5d1704bce43",
|
||||
"RestaurantId": "64a3d9f0876bc5d1704bce43",
|
||||
"ApiKey": "LBOACMlvFEgDbZqt24uW0LjiFv0LKU5DT94g0JDoBnI=",
|
||||
"PrinterConfigurations": {}
|
||||
}
|
||||
Reference in New Issue
Block a user