private void InternalPrint(Ticket ticket, PrintJob printJob, Func <Order, bool> orderSelector) { var tasks = _ticketPrintTaskBuilder.GetPrintTasksForTicket(ticket, printJob, orderSelector); foreach (var ticketPrintTask in tasks.Where(x => x != null && x.Printer != null && x.Lines != null)) { PrintJobFactory.CreatePrintJob(ticketPrintTask.Printer, _printerService).DoPrint(ticketPrintTask.Lines); } }
public void PrintTicket(Ticket ticket, PrintJob printJob, Func <Order, bool> orderSelector) { ticket = ObjectCloner.Clone2(ticket); Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new Action( delegate { try { LocalSettings.UpdateThreadLanguage(); var tasks = _ticketPrintTaskBuilder.GetPrintTasksForTicket(ticket, printJob, orderSelector); foreach (var ticketPrintTask in tasks.Where(x => x != null && x.Printer != null && x.Lines != null)) { Print(ticketPrintTask.Printer, ticketPrintTask.Lines); } } catch (Exception e) { _logService.LogError(e, Resources.PrintErrorMessage + e.Message); } })); }