public PrinterServiceProvider(XFS4IoTServer.EndpointDetails EndpointDetails, IPrinterDevice Device, ILogger Logger) : base(typeof(PrinterServiceProvider), Logger) { EndpointDetails.IsNotNull($"The endpoint details are invalid. {nameof(EndpointDetails)}"); Device.IsNotNull($"The device interface is an invalid. {nameof(Device)}"); this.Device = Device; (Uri, WSUri) = EndpointDetails.ServiceUri(ServiceClass); Logger.Log(Constants.Framework, $"Listening on {Uri}"); this.EndPoint = new EndPoint(Uri, CommandDecoder, this, Logger); }
protected void DeleteJobsOnPrinter(IPrinterDevice printerDevice) { for (; ;) { if (StopNow) { return; } Logger.DebugFormat("fetching deletable jobs for {0}", printerDevice); ICollection <string> jobsToDelete; try { jobsToDelete = printerDevice.GetFailedJobIDs(); foreach (var jobToDelete in jobsToDelete) { Logger.InfoFormat("deleting job {1} on printer {0}", printerDevice, jobToDelete); printerDevice.DeleteFailedJob(jobToDelete); } } catch (WebException we) { Logger.WarnFormat("WebException while contacting {0}: {1}", printerDevice, we); // next printer break; } if (StopNow || jobsToDelete.Count == 0) { return; } try { Logger.Debug("Repetition delay."); Thread.Sleep(TimeSpan.FromSeconds(_config.CheckRepetitionDelayInSeconds)); } catch (ThreadInterruptedException) { Logger.Debug("Interrupted!"); } } }