/// <summary> /// Get event from a printer, it could be ink issue or page issue /// If the event is critical, change printer /// </summary> /// <param name="sender">The object sender</param> /// <param name="e">The argument sent</param> public void Event(object sender, EventArgs e) { if (!(e is PrinterEventArgs)) { return; } PrinterEventArgs args = (PrinterEventArgs)e; MessageBoxPrint(args); if (args.Critical) { if (args.ErrorMessage == "Ink quantity less than 1%") { AddInk(CurrentPrinter); } else { AddPages(CurrentPrinter); } if (CurrentPrinter == (PrinterUserControl)sender) { queue.Enqueue(CurrentPrinter); CurrentPrinter = queue.Dequeue(); } } }
/// <summary> /// Print message box according to the argument sent /// </summary> /// <param name="e">Argument sent</param> public void MessageBoxPrint(PrinterEventArgs e) { // about the image MessageBoxImage i; if (e.Critical) { i = MessageBoxImage.Error; } else { i = MessageBoxImage.Exclamation; } // about the message string msg = e.Date + "\n" + e.Name + " alerts:\n " + e.ErrorMessage; MessageBox.Show( msg, "WARNING!!", MessageBoxButton.OK, i); }